50 lines
2.2 KiB
Markdown
50 lines
2.2 KiB
Markdown
# 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
|
|
1. 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.
|
|
2. 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.
|