Files
2026-10-05 22:08:59 +02:00

54 lines
2.2 KiB
Markdown

# 1. Goal
A mountain rescue service records each callout of its rescue teams. The service
must store the callouts in a database table. A report and an OData service read
the callouts later. Therefore the table needs a fixed structure.
# 2. Open questions
None.
# 3. Context
- Package $TMP, client 001. No transports.
- The table is new. No other object of this task exists.
- A callout is the work of one rescue team for one incident.
- The client and the callout ID identify one callout.
# 4. Contract
- Create the database table {{P}}RESCUE in package $TMP.
- The table contains these fields, in this order:
client, callout_id, callout_date, location, duration_min, team_size,
rescued_count, fee_amount, currency_code.
# 5. Business rules
1. The key fields of the table are client and callout_id.
2. client has the type abap.clnt and is not null.
3. callout_id has the type abap.char(10) and is not null. A callout ID is
unique for one client.
4. callout_date has the type abap.dats and is not null. It is the day of the
callout.
5. location has the type abap.char(30). It is the place of the incident. The
location can be empty.
6. duration_min has the type abap.int4. It is the duration of the callout in
minutes.
7. team_size has the type abap.int4. It is the number of rescuers.
8. rescued_count has the type abap.int4. It is the number of persons that the
team rescued.
9. fee_amount has the type abap.dec(13,2). It is the fee for the callout.
10. currency_code has the type abap.cuky. It is the currency of fee_amount.
fee_amount is an amount and refers to the currency field of the same table.
11. The table keeps one row for each pair of client and callout_id. A second
insert with the same pair returns sy-subrc = 4.
# 6. Constraints
- Release target: 8.16.
- Use only built-in types: abap.clnt, abap.char, abap.dats, abap.int4,
abap.dec, abap.cuky.
- The table is not extensible. Delivery class A. Data maintenance is
restricted.
- Write clean ABAP. Do not create ATC priority 1 or priority 2 findings.
- Out of scope: all other objects in package $TMP.
# 7. Acceptance
- The table {{P}}RESCUE is active and has no syntax error.
- The hidden tests pass.
- Write ABAP Unit tests with CL_OSQL_TEST_ENVIRONMENT in a global test class.