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

1.6 KiB

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.