# 1. Goal A service company records its service jobs. The company needs one reusable line type for a service job. The line type is a DDIC structure. The company also needs a small base structure for the audit fields of its business objects. # 2. Open questions None. # 3. Context - Several programs and one OData service use the service job line type. - The line type is a DDIC structure. It is not a database table. - The base structure is a DDIC structure too. - The company keeps the audit fields in the base structure, so that all of its business objects use the same audit fields. # 4. Contract - Create the DDIC structure {{P}}SVC_BASE in package $TMP. - Create the DDIC structure {{P}}SVC_JOB in package $TMP. - Fields of {{P}}SVC_BASE, in this order: - created_by : abap.char(12) - created_on : abap.dats - Fields of {{P}}SVC_JOB, in this order: - created_by : abap.char(12) - created_on : abap.dats - job_id : abap.char(10) - work_hours : abap.dec(5,2) - calc_mode : abap.char(2) - order_ref : abap.char(12) - service_date : abap.dats - part_count : abap.int4 - group_code : abap.char(4) - net_value : abap.dec(13,2) # 5. Business rules 1. {{P}}SVC_JOB has exactly the ten fields of the contract, in the given order. 2. The field names are the safe names of the contract. Do not use the words hours, mode, order, date, count, group or value as a field name. 3. The data type and the length of every field are exactly as in the contract. 4. {{P}}SVC_BASE has exactly the two fields of the contract, in the given order. 5. The first two fields of {{P}}SVC_JOB have the same name, data type and length as the two fields of {{P}}SVC_BASE. # 6. Constraints - Release target: 8.16. - Coding standards: Clean ABAP. - Out of scope: do not create database tables. # 7. Acceptance - The structures are active and have no syntax error. - The hidden tests pass. - Write ABAP Unit tests with RTTI in a global test class.