Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
53 lines
2.1 KiB
Markdown
53 lines
2.1 KiB
Markdown
# 1. Goal
|
|
The program {{P}}NEWS_DIST_OLD in package $TMP is the legacy distribution
|
|
report of a regional newspaper publisher. It shows, for a period, the copies
|
|
that each newsagent received and returned. The report works, but its source
|
|
does not meet the current quality standards of the company. Refactor the
|
|
source of {{P}}NEWS_DIST_OLD in place. The behavior of the program stays the
|
|
same.
|
|
|
|
# 2. Open questions
|
|
None.
|
|
|
|
# 3. Context
|
|
- The executable program {{P}}NEWS_DIST_OLD exists in package $TMP and is
|
|
active. Its source is the legacy code that you refactor.
|
|
- The tables {{P}}AGENT and {{P}}DELIV exist in package $TMP and contain data.
|
|
- Users run the program with the selection screen and read the ALV list.
|
|
|
|
# 4. Contract
|
|
- Object: the executable program {{P}}NEWS_DIST_OLD in package $TMP.
|
|
Refactor this program in place. Keep the name. Do not create a new program.
|
|
- Selection screen, unchanged:
|
|
- Select-option S_DATE for the delivery date.
|
|
- Select-option S_DIST for the district.
|
|
- The program shows the result with CL_SALV_TABLE, as before.
|
|
- The ALV list keeps these column names:
|
|
AGENT, NAME, DISTRICT, COPIES, RETURNED, RATE.
|
|
|
|
# 5. Business rules
|
|
The behavior of the program does not change. The legacy source of
|
|
{{P}}NEWS_DIST_OLD is the specification of the behavior. Read the source and
|
|
keep all of it:
|
|
- the filters of the selection screen,
|
|
- the set of lines of the list,
|
|
- the values of the columns,
|
|
- the sort order of the lines.
|
|
Do not change the result of the program.
|
|
|
|
# 6. Constraints
|
|
- Release target: 8.16.
|
|
- Coding standards: Clean ABAP.
|
|
- The refactored program has no database access inside a loop.
|
|
- No method of the program has more than 40 statements.
|
|
- The program has no ATC finding of priority 1 or 2.
|
|
- Write ABAP Unit tests as local test classes in the program.
|
|
- Out of scope: do not change the tables {{P}}AGENT and {{P}}DELIV.
|
|
Do not change the selection screen names and the ALV column names.
|
|
|
|
# 7. Acceptance
|
|
- {{P}}NEWS_DIST_OLD is active and has no syntax error.
|
|
- The result of the program is the same as before the refactoring.
|
|
- The hidden tests pass.
|
|
- The local test classes pass.
|