ADT fallback: Accept headers for FUNC; G0189 accepted; regen2 results
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
@@ -1,52 +1,51 @@
|
||||
# 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
|
||||
The report {{P}}HELPDESK_OLD in package $TMP shows the support tickets of a
|
||||
service desk. The report works, but its source code is old and hard to
|
||||
maintain. Refactor the report in place. The behaviour of the report 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.
|
||||
- The executable program {{P}}HELPDESK_OLD already exists in package $TMP and
|
||||
is active. Its source code is the specification of the behaviour. Read the
|
||||
source code before you change it.
|
||||
- The report reads the table {{P}}TICKET. The table contains data.
|
||||
Fields:
|
||||
- TICKET_ID (INT4, key): the number of the ticket.
|
||||
- TEAM (CHAR 12): the support team that owns the ticket.
|
||||
- PRIORITY (CHAR 1): the priority of the ticket.
|
||||
- OPENED_ON (DATS): the day on which the ticket was opened.
|
||||
|
||||
# 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.
|
||||
- Refactor the executable program {{P}}HELPDESK_OLD in package $TMP. The name
|
||||
of the program and its public interface do not change.
|
||||
- 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.
|
||||
- Parameter P_FROM, type DATS, mandatory.
|
||||
- Parameter P_TO, type DATS, mandatory.
|
||||
- Select-option S_TEAM for the team.
|
||||
- The report shows the result with CL_SALV_TABLE. The output table has these
|
||||
columns with these names: TEAM, TICKETS, URGENT.
|
||||
|
||||
# 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.
|
||||
The behaviour of the report stays the same. The current source code of
|
||||
{{P}}HELPDESK_OLD defines the behaviour: which tickets are included, the
|
||||
values of the output columns, and the order of the output lines. Read the
|
||||
source code and keep all of it.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 8.16.
|
||||
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
|
||||
- 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.
|
||||
- Read the ticket data with one database access. Do not read the database
|
||||
in a loop.
|
||||
- Keep the methods below 40 statements.
|
||||
- Pass large parameters by reference.
|
||||
- The refactored program has no ATC finding of priority 1 or priority 2.
|
||||
- Out of scope: do not change the table {{P}}TICKET.
|
||||
|
||||
# 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 program {{P}}HELPDESK_OLD is active and has no syntax error.
|
||||
- The behaviour of the program is unchanged.
|
||||
- The hidden tests pass.
|
||||
- The local test classes pass.
|
||||
- Write ABAP Unit tests as local test classes in the program.
|
||||
|
||||
Reference in New Issue
Block a user