62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
# 1. Goal
|
|
|
|
A paintball arena records each game round that is played on its fields. A round
|
|
report and an OData service must show the same line for a round. Both use one
|
|
line type. Create this line type as a DDIC structure.
|
|
|
|
# 2. Open questions
|
|
|
|
None.
|
|
|
|
# 3. Context
|
|
|
|
- The arena plays rounds on numbered fields.
|
|
- A round has a round number, a play date, the number of the field, the name of
|
|
the visiting team, the number of players, the number of paintballs that the
|
|
team used, the fee of the round, and the referee.
|
|
- The report and the OData service also show who edited the round last and on
|
|
which date.
|
|
- All objects are in package $TMP.
|
|
|
|
# 4. Contract
|
|
|
|
- Create the DDIC structure {{P}}GAME_ROUND in package $TMP.
|
|
- Create the DDIC structure {{P}}EDIT_STAMP in package $TMP.
|
|
- {{P}}GAME_ROUND has these fields, in this order:
|
|
ROUND_ID, PLAY_DATE, FIELD_NO, TEAM_NAME, PLAYER_COUNT, PAINTBALLS,
|
|
ROUND_FEE, REFEREE, LAST_EDITOR, LAST_EDIT_ON.
|
|
- The fields LAST_EDITOR and LAST_EDIT_ON also exist on their own in
|
|
{{P}}EDIT_STAMP.
|
|
|
|
# 5. Business rules
|
|
|
|
1. {{P}}GAME_ROUND is a structure. It has exactly ten fields.
|
|
2. ROUND_ID is a character field. Its length is 10.
|
|
3. PLAY_DATE is a date field. Its type is DATS.
|
|
4. FIELD_NO is a numeric text field. Its length is 2.
|
|
5. TEAM_NAME is a character field. Its length is 20.
|
|
6. PLAYER_COUNT is an integer field. Its type is INT4.
|
|
7. PAINTBALLS is an integer field. Its type is INT4.
|
|
8. ROUND_FEE is a packed number. It has 9 digits and 2 decimal places.
|
|
9. REFEREE is a character field. Its length is 15.
|
|
10. LAST_EDITOR and LAST_EDIT_ON are the last two fields of {{P}}GAME_ROUND.
|
|
11. LAST_EDITOR is a character field. Its length is 12.
|
|
12. LAST_EDIT_ON is a date field. Its type is DATS.
|
|
13. {{P}}EDIT_STAMP is a structure. It has exactly two fields: LAST_EDITOR
|
|
(character, length 12) and LAST_EDIT_ON (date, type DATS).
|
|
14. {{P}}GAME_ROUND contains the fields of {{P}}EDIT_STAMP at the end. The
|
|
fields LAST_EDITOR and LAST_EDIT_ON must not be defined twice.
|
|
|
|
# 6. Constraints
|
|
|
|
- Release target: ABAP Platform 2025 (SAP_BASIS 816).
|
|
- Coding standards: Clean ABAP.
|
|
- Out of scope: no other objects in package $TMP.
|
|
|
|
# 7. Acceptance
|
|
|
|
- Both structures are active and have no syntax error.
|
|
- The hidden tests pass.
|
|
- Write ABAP Unit tests in a global test class. The tests check the two
|
|
structures with RTTI.
|