Files
abap-llm/tasks_gen/train/G1110/spec.md
2026-10-05 18:02:52 +02:00

53 lines
2.2 KiB
Markdown

# 1. Goal
The recycling yard pays its customers for scrap metal deliveries. The report
{{P}}SCRAP_PAY shows the payout of each metal type for one delivery day in an
ALV list. The yard uses the list to check the daily payouts.
The report is a legacy program. It works, but its code is hard to read and hard
to maintain. Refactor the report. The behavior stays the same.
# 2. Open questions
None.
# 3. Context
- Table {{P}}SCRAP exists in package $TMP and contains data.
Fields: DELIV_ID (INT4, key), METAL (CHAR 4), DELIV_DATE (DATS),
WEIGHT_KG (DEC 13,3), PRICE_KG (DEC 13,2).
- The executable program {{P}}SCRAP_PAY exists in package $TMP and is active.
It has a selection screen and shows an ALV list.
- The program {{P}}SCRAP_PAY contains the business rules of the payout list.
Read the code of the program before you change it.
# 4. Contract
- Refactor the executable program {{P}}SCRAP_PAY in package $TMP. The name stays
the same.
- The selection screen stays the same:
- Parameter P_DATE, type DATS, mandatory: the delivery day.
- Select-option S_METAL for the metal type.
- The ALV list stays the same. The output table has these columns with these
names and these value formats:
- METAL: the metal type.
- TOTAL_KG: the total weight of the metal in kg, 3 decimals.
- TOTAL_PAY: the total payout for the metal, 2 decimals.
- DELIV_CNT: the number of deliveries of the metal.
# 5. Business rules
- The behavior of the program stays the same. The code of the legacy program
{{P}}SCRAP_PAY defines every rule: which deliveries are included, how the
totals are calculated, and in which order the lines are shown.
- The rules of the legacy program are correct. Do not correct, add or remove a
rule.
# 6. Constraints
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
- Coding standards: Clean ABAP. Small methods, clear names, no unused code, no
FORM routine. Read the data of the list with one database access.
No ATC priority 1 or 2 finding.
- Out of scope: do not change the table {{P}}SCRAP. Do not change the selection
screen, the ALV column names or the values of the ALV list.
# 7. Acceptance
- The program {{P}}SCRAP_PAY is active and has no syntax error.
- The hidden tests pass.
- Write ABAP Unit tests as local test classes in the program.