Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# 1. Goal
|
|
Refactor the legacy report {{P}}FLEET_COST_OLD in package $TMP. The report
|
|
shows the running cost of each vehicle of a company fleet for a period. The
|
|
behavior of the report stays the same. Improve the internal quality of the
|
|
source code.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- The program {{P}}FLEET_COST_OLD exists in package $TMP. It is active and it
|
|
produces a correct result. Its source code is of poor quality.
|
|
- The tables {{P}}VEHICLE and {{P}}TRIP exist in package $TMP. They contain
|
|
data. The report reads these two tables.
|
|
- The report shows the result in an ALV list.
|
|
- The users report no functional defect. Do not change the behavior.
|
|
- The report is not in the out-of-scope list. Refactor it in place.
|
|
|
|
# 4. Contract
|
|
- The program keeps the name {{P}}FLEET_COST_OLD and the package $TMP.
|
|
- The selection screen keeps these fields, in this order:
|
|
- Parameter P_FROM, type DATS, mandatory.
|
|
- Parameter P_TO, type DATS, mandatory.
|
|
- Select-option S_CAT for the vehicle category.
|
|
- The ALV list keeps the same columns with the same names: VEHICLE_ID, PLATE,
|
|
CATEGORY, DISTANCE, FUEL_COST, TOLL_COST, TOTAL_COST, COST_PER_KM.
|
|
- The lines of the list and the order of the lines do not change.
|
|
|
|
# 5. Business rules
|
|
The behavior stays the same. The legacy source code of {{P}}FLEET_COST_OLD
|
|
contains all the rules. Read the legacy code. Keep every rule. Do not add a
|
|
rule and do not remove a rule.
|
|
|
|
# 6. Constraints
|
|
- Release target: 8.16.
|
|
- Coding standards: Clean ABAP.
|
|
- Do not read a database table inside a loop.
|
|
- A method has less than 40 statements.
|
|
- The maximum nesting depth is 3.
|
|
- Use meaningful names.
|
|
- Out of scope: do not change the tables {{P}}VEHICLE and {{P}}TRIP. Do not
|
|
change the selection screen fields. Do not change the ALV column names.
|
|
|
|
# 7. Acceptance
|
|
- The program {{P}}FLEET_COST_OLD is active and has no syntax error.
|
|
- The hidden tests pass.
|
|
- Write ABAP Unit tests as local test classes in the program.
|