Files

54 lines
2.1 KiB
Markdown

# 1. Goal
A facility management company operates a fleet of vehicles. The fleet manager
needs a report that shows the distance that each vehicle drove in a period.
The fleet manager uses the report to compare the vehicles.
# 2. Open questions
None.
# 3. Context
The tables {{P}}VEH and {{P}}ODOM exist in package $TMP. Both tables contain
data.
Table {{P}}VEH holds the vehicles.
Fields: VEH_ID (CHAR 10, key), DEPOT (CHAR 4), VEH_TYPE (CHAR 10).
Table {{P}}ODOM holds the odometer readings of the vehicles.
Fields: READ_ID (INT4, key), VEH_ID (CHAR 10), READ_DATE (DATS),
ODOMETER (INT4, the odometer value in kilometres).
A vehicle can have many odometer readings. An odometer reading can belong to a
vehicle that is not in {{P}}VEH.
# 4. Contract
- Create the executable program {{P}}FLEET_DIST in package $TMP.
- Selection screen:
- Parameter P_FROM, type DATS, mandatory: the first reading date to include.
- Parameter P_TO, type DATS, mandatory: the last reading date to include.
- Select-option S_DEPOT for the depot.
- Show the result with CL_SALV_TABLE. The output table has these columns, with
these names: VEH_ID, DEPOT, DISTANCE, READINGS.
# 5. Business rules
1. Include an odometer reading only if READ_DATE is on or after P_FROM and on
or before P_TO.
2. Include a vehicle only if the vehicle is in {{P}}VEH and its DEPOT is in
S_DEPOT.
3. Include a vehicle only if at least two of its readings are included.
4. DISTANCE is the highest included ODOMETER value of the vehicle minus the
lowest included ODOMETER value of the vehicle.
5. READINGS is the number of included readings of the vehicle.
6. Show one line for each included vehicle.
7. Sort the lines by DISTANCE. The highest distance comes first. If two lines
have the same DISTANCE, the line with the smaller VEH_ID comes first.
# 6. Constraints
- Release target: 8.16.
- Coding standards: Clean ABAP.
- Out of scope: do not change {{P}}VEH and {{P}}ODOM.
# 7. Acceptance
- The program is active and has no syntax error.
- The hidden tests pass.
- Write ABAP Unit tests as local test classes in the program.