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

42 lines
1.7 KiB
Markdown

# 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.