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

42 lines
1.6 KiB
Markdown

# 1. Goal
A pet grooming salon bills its customers for the grooming of their pets. The
salon uses the report {{P}}GROOM_BILL_OLD to see the charge of each grooming
order of one day.
# 2. Open questions
None.
# 3. Context
- The legacy report {{P}}GROOM_BILL_OLD exists in package $TMP. It is active.
It reads the table {{P}}GROOM and shows the result with CL_SALV_TABLE.
- The table {{P}}GROOM contains data. Fields: GROOM_ID (INT4, key),
PET (CHAR 10), COAT (CHAR 8), WEIGHT_KG (DEC 5,1), SERVICE (CHAR 6),
VISIT_DATE (DATS).
- The legacy report has a selection screen with the parameter P_DATE and the
select-option S_PET.
# 4. Contract
- Refactor the report {{P}}GROOM_BILL_OLD in package $TMP. The name stays the
same.
- The selection screen stays the same:
- Parameter P_DATE, type DATS, mandatory: the visit date to include.
- Select-option S_PET for the pet kind.
- The ALV output stays the same. The output table has these columns with these
names: GROOM_ID, PET, SERVICE, CHARGE.
# 5. Business rules
The behavior of the report stays the same. The rules are in the legacy code of
{{P}}GROOM_BILL_OLD. Read the legacy code and keep every rule.
# 6. Constraints
- Release target: 7.58.
- Coding standards: Clean ABAP. Read the data with one database access. Keep
every method below 40 statements. Do not use a database access in a loop.
- Out of scope: do not change {{P}}GROOM and {{P}}GROOM_SEED.
# 7. Acceptance
- The report is active and has no syntax error.
- The behavior of the report is unchanged.
- The hidden tests pass.
- Write ABAP Unit tests as local test classes in the report.