51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
# 1. Goal
|
|
The campsite "Lakeside" must store the bookings of its pitches in a database
|
|
table. The reception desk, a nightly list and an OData service read this table,
|
|
so the structure of the table must be fixed.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- The campsite rents numbered pitches to guests.
|
|
- A booking has a booking number. A booking number occurs only once.
|
|
- The campsite runs in one client. The table is client-dependent.
|
|
|
|
# 4. Contract
|
|
- Create the transparent table {{P}}PITCH in package $TMP.
|
|
- Fields:
|
|
- client (abap.clnt): the client. Key field.
|
|
- booking_id (abap.char(10)): the booking number. Key field.
|
|
- pitch_no (abap.numc(4)): the number of the rented pitch.
|
|
- guest_name (abap.char(30)): the name of the guest.
|
|
- arrival_date (abap.dats): the first night of the stay.
|
|
- departure_date (abap.dats): the day of departure.
|
|
- persons (abap.int4): the number of persons.
|
|
- power_hookup (abap.char(1)): 'X' when a power hookup is booked.
|
|
- rate_per_night (abap.dec(9,2)): the price for one night.
|
|
|
|
# 5. Business rules
|
|
1. One row of the table is one booking. The key of the table is client and
|
|
booking_id. A booking number occurs only once.
|
|
2. booking_id has 10 characters.
|
|
3. pitch_no has 4 characters. The characters are digits.
|
|
4. guest_name has 30 characters.
|
|
5. arrival_date and departure_date are dates. arrival_date is the first night
|
|
of the stay. departure_date is the day of departure.
|
|
6. persons is a whole number.
|
|
7. power_hookup has 1 character. The value is 'X' when the guest booked a power
|
|
hookup. Otherwise the value is empty.
|
|
8. rate_per_night has 9 digits and 2 decimals. It is the price for one night.
|
|
9. The table has exactly these 9 fields.
|
|
|
|
# 6. Constraints
|
|
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
|
|
- Use Clean ABAP.
|
|
- Out of scope: no other objects.
|
|
|
|
# 7. Acceptance
|
|
- The table {{P}}PITCH 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
|
|
for the database access.
|