2.6 KiB
2.6 KiB
1. Goal
A stock report and an OData service must use the same line type for warehouse stock positions. Create the DDIC structure {{P}}STOCK_LINE and the DDIC structure {{P}}AUDIT_INFO in package $TMP.
2. Open questions
None.
3. Context
- The table {{P}}STOCK exists in package $TMP. Its columns are, in this order: MATERIAL (CHAR 18), PLANT (CHAR 4), NET_AMOUNT (DEC 9,2), CURRENCY (CHAR 5), CREATED_BY (CHAR 12), CREATED_ON (DATS). The key is CLIENT, MATERIAL and PLANT.
- The table {{P}}STOCK is empty. Test data comes from test doubles.
- {{P}}AUDIT_INFO is the audit part that other objects use, for example a change log view and a service. {{P}}STOCK_LINE must carry the same audit part.
- Both structures are used as line types in ABAP SQL and in an OData service.
4. Contract
- Create the DDIC structure {{P}}STOCK_LINE in package $TMP. Components, in this order: material (CHAR 18), plant (CHAR 4), net_amount (DEC 9,2), currency (CHAR 5), created_by (CHAR 12), created_on (DATS).
- Create the DDIC structure {{P}}AUDIT_INFO in package $TMP. Components, in this order: created_by (CHAR 12), created_on (DATS).
- {{P}}STOCK_LINE contains all six components itself. It does not use a DDIC include.
5. Business rules
- {{P}}STOCK_LINE has exactly six components.
- The components of {{P}}STOCK_LINE are, in this order: material, plant, net_amount, currency, created_by, created_on.
- material is a character field of 18 characters.
- plant is a character field of 4 characters.
- net_amount is a packed number with 9 digits and 2 decimal places.
- currency is a character field of 5 characters.
- created_by is a character field of 12 characters.
- created_on is a date field of type DATS.
- {{P}}AUDIT_INFO has exactly two components, in this order: created_by (CHAR 12) and created_on (DATS).
- Every component of {{P}}STOCK_LINE is elementary. {{P}}STOCK_LINE is a flat structure.
- The components created_by and created_on of {{P}}STOCK_LINE have the same data type and the same length as the components of {{P}}AUDIT_INFO.
- A row of {{P}}STOCK can be read into a work area of type {{P}}STOCK_LINE with ABAP SQL.
6. Constraints
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
- Package $TMP. Do not use transports.
- Coding standards: Clean ABAP. No ATC priority 1 or 2 findings.
- Out of scope: do not change the table {{P}}STOCK.
7. Acceptance
- Both structures are active and have no syntax error.
- The hidden tests pass.
- Write ABAP Unit tests with CL_OSQL_TEST_ENVIRONMENT in a global test class (for example {{P}}T16_TEST). The tests must prove rules 1 to 12.