42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# 1. Goal
|
|
A pet grooming salon bills its customers for the grooming of their pets. The
|
|
salon uses the report {{P}}GROOM_BILL_OLD to see the charge of each grooming
|
|
order of one day.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- The legacy report {{P}}GROOM_BILL_OLD exists in package $TMP. It is active.
|
|
It reads the table {{P}}GROOM and shows the result with CL_SALV_TABLE.
|
|
- The table {{P}}GROOM contains data. Fields: GROOM_ID (INT4, key),
|
|
PET (CHAR 10), COAT (CHAR 8), WEIGHT_KG (DEC 5,1), SERVICE (CHAR 6),
|
|
VISIT_DATE (DATS).
|
|
- The legacy report has a selection screen with the parameter P_DATE and the
|
|
select-option S_PET.
|
|
|
|
# 4. Contract
|
|
- Refactor the report {{P}}GROOM_BILL_OLD in package $TMP. The name stays the
|
|
same.
|
|
- The selection screen stays the same:
|
|
- Parameter P_DATE, type DATS, mandatory: the visit date to include.
|
|
- Select-option S_PET for the pet kind.
|
|
- The ALV output stays the same. The output table has these columns with these
|
|
names: GROOM_ID, PET, SERVICE, CHARGE.
|
|
|
|
# 5. Business rules
|
|
The behavior of the report stays the same. The rules are in the legacy code of
|
|
{{P}}GROOM_BILL_OLD. Read the legacy code and keep every rule.
|
|
|
|
# 6. Constraints
|
|
- Release target: 7.58.
|
|
- Coding standards: Clean ABAP. Read the data with one database access. Keep
|
|
every method below 40 statements. Do not use a database access in a loop.
|
|
- Out of scope: do not change {{P}}GROOM and {{P}}GROOM_SEED.
|
|
|
|
# 7. Acceptance
|
|
- The report is active and has no syntax error.
|
|
- The behavior of the report is unchanged.
|
|
- The hidden tests pass.
|
|
- Write ABAP Unit tests as local test classes in the report.
|