Generator: pilot analysis and fixes; G0002-G0021 tasks; handover notes merged

- Static bundle checks (name length, seed type, reserved words, contract test classes,
  testclasses_file), local abaplint parser check before SAP, max_tokens, robust JSON parse
- Runner: G2 for CDS views with parameters, contract_check detail in report
- G0020 and G0013 fixed by review and revalidated (oracle 100, null 0)
- Pilot results in docs/faz1-tasarim.md 11e; handover notes merged into CLAUDE.md and docs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-03 05:04:23 +02:00
parent 15eb9f1bb2
commit 5de5e2851c
162 changed files with 9943 additions and 23 deletions

View File

@@ -0,0 +1,46 @@
# 1. Goal
Show every open order together with the name and country of its customer. A
list report and an OData service read this data, so the data must be prepared
in the database, in a CDS view entity.
# 2. Open questions
None.
# 3. Context
- Table {{P}}CUST (customer master), package $TMP.
Key: CUST_ID (CHAR 10). Further fields: CUST_NAME (CHAR 40), COUNTRY (CHAR 3).
- Table {{P}}ORD (order header), package $TMP.
Key: ORDER_ID (CHAR 10). Further fields: CUST_ID (CHAR 10), ORDER_DATE (DATS),
STATUS (CHAR 1).
STATUS is 'O' for an open order and 'C' for a closed order.
# 4. Contract
- Create the CDS view entity {{P}}I_ORDER in package $TMP.
- Elements, with these names: ORDER_ID (key), CUST_ID, ORDER_DATE,
CUSTOMER_NAME, COUNTRY.
- Define an association named _Customer in {{P}}I_ORDER. The association has
cardinality [0..1] and points to the customer master table {{P}}CUST. The
association condition compares the CUST_ID of the order with the CUST_ID of
the customer.
- Expose the association _Customer in the element list of {{P}}I_ORDER and read
CUSTOMER_NAME and COUNTRY with path expressions through this association.
- The view entity has no authorization check (#NOT_REQUIRED).
# 5. Business rules
1. {{P}}I_ORDER shows one row for each order with STATUS 'O'. An order with
STATUS 'C' is not shown.
2. CUSTOMER_NAME is the CUST_NAME and COUNTRY is the COUNTRY of the customer
whose CUST_ID is the CUST_ID of the order.
3. If an order has a CUST_ID for which no customer exists, the order is still
shown. CUSTOMER_NAME and COUNTRY are then empty.
4. ORDER_ID, CUST_ID and ORDER_DATE are the values of the order.
# 6. Constraints
- Release target: 7.58.
- Coding standards: Clean ABAP.
- Out of scope: do not change {{P}}CUST and {{P}}ORD.
# 7. Acceptance
- The view entity 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.