2.2 KiB
2.2 KiB
1. Goal
The CDS view entity {{P}}I_FORGE_JOB in package $TMP lists the open jobs of a blacksmith's forge. The current source of the view joins the same table more than once. Rework the view so that every source table appears in the join one time. The view keeps its name, its elements and its result rows.
2. Open questions
None.
3. Context
- {{P}}I_FORGE_JOB is an active CDS view entity in package $TMP.
- The view reads three tables: {{P}}FORGJOB, {{P}}FORGART and {{P}}FORGCUS.
- {{P}}FORGJOB holds one row for each job of the forge. Key: JOB_ID (CHAR 10). Further fields: ARTICLE_ID (CHAR 10), JOB_DATE (DATS), WORK_MIN (INT4), JOB_STATE (CHAR 1).
- {{P}}FORGART holds one row for each forged article. Key: ARTICLE_ID (CHAR 10). Further fields: CUSTOMER_ID (CHAR 10), ARTICLE_NAME (CHAR 20), WEIGHT_KG (INT4).
- {{P}}FORGCUS holds one row for each customer. Key: CUSTOMER_ID (CHAR 10). Further fields: CUSTOMER_NAME (CHAR 20), CITY (CHAR 20).
- A report and an OData service read the view with the element names below.
- The current source of the view is part of the seed. Read it. It fixes the result that the hidden tests expect.
4. Contract
- Rework {{P}}I_FORGE_JOB in package $TMP. The name does not change.
- The elements do not change. Element names: JOB_ID (key), JOB_DATE, ARTICLE_NAME, WEIGHT_KG, CUSTOMER_NAME, CITY, WORK_MIN, EFFORT.
- The element types do not change.
- Authorization check: #NOT_REQUIRED.
5. Business rules
- The result of the view does not change. The seed source of {{P}}I_FORGE_JOB is the definition of the result. Read the seed source.
- The number of rows, the element names and the element types stay as they are today.
6. Constraints
- Release target: SAP_BASIS 816 (ABAP Platform 2025), client 001.
- Quality goals:
- No source table of the view may appear in the join more than once.
- The view must stay readable and free of duplicated conditions.
- Coding standards: Clean ABAP, no ATC priority 1 or priority 2 findings.
- Out of scope: do not change {{P}}FORGJOB, {{P}}FORGART and {{P}}FORGCUS.
7. Acceptance
- The view {{P}}I_FORGE_JOB is active and free of syntax errors.
- The hidden tests pass.
- Write ABAP Unit tests with CL_CDS_TEST_ENVIRONMENT in a global test class.