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

1.7 KiB

1. Goal

A ferry operator wants to know the load of each of its routes. A report and an OData service will read the load. The calculation must run in the database, in a CDS view.

2. Open questions

None.

3. Context

  • Table {{P}}SAIL (ferry sailing), package $TMP. Key: SAIL_ID (CHAR 10). Fields: ROUTE_ID (CHAR 10), SAIL_DATE (DATS).
  • Table {{P}}VEH (vehicle on board), package $TMP. Key: SAIL_ID (CHAR 10) and VEH_NO (INT4). Fields: VEH_TYPE (CHAR 4), WEIGHT_KG (INT4), FEE (DEC 15,2, the fee that the vehicle pays for the crossing).
  • A route has one or more sailings. A sailing has zero or more vehicles.

4. Contract

  • Create the CDS view entity {{P}}I_ROUTE_LOAD in package $TMP.
  • Elements, with these names: ROUTE_ID (key), VEH_COUNT, TOTAL_WEIGHT, TOTAL_FEE.
  • No authorization check (#NOT_REQUIRED).

5. Business rules

  1. Show one row for each route that has at least one vehicle on one of its sailings. Do not show a route without vehicles.
  2. VEH_COUNT is the number of vehicles on all sailings of the route. A sailing without vehicles does not add to VEH_COUNT.
  3. TOTAL_WEIGHT is the sum of WEIGHT_KG of these vehicles, in kilograms.
  4. TOTAL_FEE is the sum of FEE of these vehicles, with 2 decimals.
  5. Show only the routes whose total weight is more than 10,000 kg. A route whose total weight is 10,000 kg or less must not appear. A route whose total weight is 10,001 kg must appear.

6. Constraints

  • Release target: 8.16 (ABAP Platform 2025).
  • Coding standards: Clean ABAP. Keep methods below 40 statements.
  • Out of scope: do not change {{P}}SAIL and {{P}}VEH.

7. Acceptance

  • The view is active and has no syntax error.
  • The hidden tests pass.
  • Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class.