46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
# 1. Goal
|
|
A dog walking service wants a summary of its walks. The office uses the list to
|
|
see how far each walker went in the period.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- Table {{P}}WALK exists in package $TMP and contains data.
|
|
Fields: WALK_ID (INT4, key), WALKER (CHAR 6), WALK_DATE (DATS),
|
|
DIST_M (INT4, the distance of the walk in metres), STATUS (CHAR 1).
|
|
- STATUS has these values:
|
|
- 'F': the walk is finished.
|
|
- 'X': the walk is cancelled.
|
|
- Table {{P}}WALKSUM exists in package $TMP. It is the output structure of the
|
|
list. Fields: WALKER (CHAR 6, key), DIST_M (INT4), WALKS (INT4).
|
|
|
|
# 4. Contract
|
|
- Create the executable program {{P}}WALKER_STATS in package $TMP.
|
|
- Selection screen:
|
|
- Select-option S_DATE for WALK_DATE: the walk dates to include.
|
|
- Select-option S_WALKER for WALKER: the walkers to include.
|
|
- Show the result with CL_SALV_TABLE. The output table has the row type of
|
|
table {{P}}WALKSUM. The output columns are WALKER, DIST_M (the total distance
|
|
in metres) and WALKS (the number of walks).
|
|
|
|
# 5. Business rules
|
|
1. Include a walk only if WALK_DATE is in S_DATE, WALKER is in S_WALKER and
|
|
STATUS is 'F'.
|
|
2. An empty S_DATE or an empty S_WALKER does not restrict the result.
|
|
3. Show one line for each walker that has at least two included walks.
|
|
4. DIST_M is the sum of DIST_M of the included walks of the walker.
|
|
5. WALKS is the number of included walks of the walker.
|
|
6. Sort the lines by DIST_M, the highest number first. If two lines have the
|
|
same DIST_M, sort them by WALKER in ascending order.
|
|
|
|
# 6. Constraints
|
|
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
|
|
- Coding standards: Clean ABAP. Read table {{P}}WALK with one database access.
|
|
- Out of scope: do not change {{P}}WALK and {{P}}WALKSUM.
|
|
|
|
# 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.
|