60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
# 1. Goal
|
|
The recording studio "Blue Room" rents its rooms to customers by the hour. Store
|
|
every recording session in one database table. The booking desk, an invoicing
|
|
program and an OData service read the same table.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- The studio has several rooms. Each room has a room code of 4 characters.
|
|
- A customer books a session in a room. The studio numbers the sessions of a
|
|
room from 000001.
|
|
- For each session the studio records the date, the booked hours, the rate mode,
|
|
the tariff group, the number of recorded tracks and the value of the session.
|
|
- The table is client-dependent. The client field is the first key field.
|
|
- The table is in package $TMP.
|
|
|
|
# 4. Contract
|
|
- Create the transparent database table {{P}}SESS in package $TMP.
|
|
- The table has these fields, in this order: client, studio_id, session_no,
|
|
customer, session_date, booked_hours, rate_mode, tariff_group, track_count,
|
|
session_value.
|
|
- The key fields are client, studio_id and session_no.
|
|
- The table has no other fields.
|
|
|
|
# 5. Business rules
|
|
1. The fields have the names, the types and the lengths of this table:
|
|
|
|
| Field | Type | Length | Decimals | Key |
|
|
| --- | --- | --- | --- | --- |
|
|
| client | abap.clnt | 3 | 0 | yes |
|
|
| studio_id | abap.char | 4 | 0 | yes |
|
|
| session_no | abap.numc | 6 | 0 | yes |
|
|
| customer | abap.char | 10 | 0 | no |
|
|
| session_date | abap.dats | 8 | 0 | no |
|
|
| booked_hours | abap.dec | 5 | 2 | no |
|
|
| rate_mode | abap.char | 4 | 0 | no |
|
|
| tariff_group | abap.char | 4 | 0 | no |
|
|
| track_count | abap.int4 | 10 | 0 | no |
|
|
| session_value | abap.dec | 15 | 2 | no |
|
|
|
|
2. The combination of client, studio_id and session_no is the key of the table.
|
|
This combination occurs at most once in the table.
|
|
3. booked_hours is the number of booked hours with 2 decimal places.
|
|
4. session_value is the value of one session with 2 decimal places.
|
|
5. The field names are not ABAP SQL reserved words. Words such as HOURS, MODE,
|
|
ORDER, DATE, COUNT, GROUP and VALUE are not permitted as field names. Use the
|
|
names of the contract.
|
|
|
|
# 6. Constraints
|
|
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
|
|
- Package $TMP. Do not use transports.
|
|
- Use Clean ABAP.
|
|
- Out of scope: do not create or change other objects.
|
|
|
|
# 7. Acceptance
|
|
- The table 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.
|