# 1. Goal A mobile window cleaning company records each cleaning job. Store the jobs in one database table. Later reports and services read this table. # 2. Open questions None. # 3. Context - Package: $TMP. - The table is new. There is no other object for this task. - The company writes one row for each cleaning job. - A job has a customer, the hours of work, the calculation mode, the date of the order, the number of panes, the group of the job and the net value. # 4. Contract - Create the transparent database table {{P}}WINJOB in package $TMP. - The table has these fields, in this order: client, job_id, customer, work_hours, calc_mode, order_date, pane_count, group_code, net_value. - The key fields are client and job_id. # 5. Business rules 1. The fields have these data types: - client: the client field. Key field. Not null. - job_id: character, length 10. Key field. Not null. - customer: character, length 10. - work_hours: integer. The hours of work. - calc_mode: character, length 2. The calculation mode. - order_date: date. The date of the order. - pane_count: integer. The number of panes. - group_code: character, length 4. The group of the job. - net_value: packed number, length 15, 2 decimals. The net value of the job. 2. The key of the table is the client and the job id together. A job id is unique for one client. 3. All key fields are not null. The other fields can be null. 4. The field order in the table is the field order in the contract. # 6. Constraints - Release target: SAP_BASIS 816 (ABAP Platform 2025). - Coding standards: - Clean ABAP. - Use the field names of the contract. - Do not use ABAP SQL reserved words as field names. For example, do not use hours, mode, order, date, count, group or value. - Out of scope: do not create other objects. Do not change SAP objects. # 7. Acceptance - The table {{P}}WINJOB is active and has no syntax error. - The hidden tests pass. - Write ABAP Unit tests in a global test class. Use CL_OSQL_TEST_ENVIRONMENT.