1.9 KiB
1.9 KiB
1. Goal
Show each truck of the fleet together with the depot that it belongs to. A planning program and an OData service read the data. The join must be in the database, in a CDS view. The consumers read the depot data with a path expression over the association of the view.
2. Open questions
None.
3. Context
- Table {{P}}DEPOT (depot), package $TMP. Key: DEPOT_ID (CHAR 10). Fields: DEPOT_NAME (CHAR 30), CITY (CHAR 20).
- Table {{P}}TRUCK (truck), package $TMP. Key: TRUCK_ID (CHAR 10). Fields: DEPOT_ID (CHAR 10), CAPACITY_KG (INT4, payload in kilograms), TRUCK_TYPE (CHAR 4).
- A truck belongs to one depot. The depot is in {{P}}DEPOT.
4. Contract
- Create the CDS view entity {{P}}I_TRUCK in package $TMP.
- Elements, with these names: TRUCK_ID (key), DEPOT_ID, CAPACITY_KG, TRUCK_TYPE.
- The view exposes the association
_Depotto {{P}}DEPOT. The association is an element of the view and its name is_Depot. - An ABAP SQL consumer reads the depot with the path expression
\_Depot-DEPOT_NAMEand\_Depot-CITY. - The authorization check is not required (#NOT_REQUIRED).
5. Business rules
- The view has one row for each truck with a CAPACITY_KG greater than zero. A truck with a capacity of zero or less is not in the view.
- The view has one row for each truck whose depot exists in {{P}}DEPOT. A truck with a DEPOT_ID that is not in {{P}}DEPOT is not in the view.
- TRUCK_ID, DEPOT_ID, CAPACITY_KG and TRUCK_TYPE are the values of the truck.
- The association
_Depotpoints from a truck to the depot with the same DEPOT_ID. The cardinality is to-one.
6. Constraints
- Release target: ABAP Platform 2025, SAP_BASIS 816.
- Coding standards: Clean ABAP. No ATC findings of priority 1 or 2.
- Out of scope: do not change {{P}}DEPOT and {{P}}TRUCK.
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.