Files
abap-llm/tasks_gen/train/G1930/spec.md
2026-10-05 22:08:59 +02:00

1.8 KiB

1. Goal

A board game cafe rents its areas to guests by the hour. The cafe needs the fee of every open visit together with the area and the guest. A report and an OData service read this data, so the fee must be calculated in the database, in a CDS view.

2. Open questions

None.

3. Context

  • Table {{P}}AREA (the areas of the cafe), package $TMP. Key: AREA_ID (CHAR 4). Fields: AREA_NAME (CHAR 20), SEATS (INT4).
  • Table {{P}}VISIT (one visit of a guest), package $TMP. Key: VISIT_ID (CHAR 10). Fields: AREA_ID (CHAR 4), GUEST (CHAR 10), NUM_HOURS (INT4), VISIT_STATE (CHAR 1).
  • The CDS view entity {{P}}I_VISIT_FEE is in package $TMP. It is active and it is already used by a report and by an OData service. The view is legacy code.

4. Contract

  • Refactor the CDS view entity {{P}}I_VISIT_FEE in package $TMP. The name of the view stays the same.
  • The view keeps these elements, with these names: VISIT_ID (key), GUEST, AREA_NAME, NUM_HOURS, FEE.
  • The view gets one parameter: P_RATE, type abap.dec( 5, 2 ). P_RATE is the hourly rate of the cafe in euro.
  • No authorization check (#NOT_REQUIRED).

5. Business rules

The legacy view {{P}}I_VISIT_FEE contains the business rules. Read the legacy view. The behavior of the view stays the same. The only change is the source of the hourly rate: the view takes the hourly rate from the parameter P_RATE and not from a literal value.

6. Constraints

  • Release target: SAP_BASIS 816 (ABAP Platform 2025).
  • Coding standards: Clean ABAP. Keep the view short and clear.
  • Out of scope: do not change {{P}}AREA and {{P}}VISIT.

7. Acceptance

  • The view is active and has no syntax error.
  • The view does not contain the hourly rate as a literal value. The view takes the hourly rate from the parameter P_RATE.
  • The hidden tests pass.
  • Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class.