Files
abap-llm/tasks_gen/eval/G0141/spec.md

2.1 KiB

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.