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

2.0 KiB

1. Goal

Show the milk deliveries of each farm in an ALV list. The cooperative uses the list to compare the farms of a region for a period.

2. Open questions

None.

3. Context

  • Table {{P}}FARM exists in package $TMP. It contains data. Fields: FARM_ID (CHAR 10, key), FARM_NAME (CHAR 40), REGION (CHAR 4).
  • Table {{P}}MILK exists in package $TMP. It contains data. Fields: DELIV_ID (INT4, key), FARM_ID (CHAR 10), DELIV_DATE (DATS), LITRES (DEC 13,2).

4. Contract

  • Create the executable program {{P}}MILK_SUM in package $TMP.
  • Selection screen:
    • Parameter P_FROM, type DATS, mandatory: the first delivery date to include.
    • Parameter P_TO, type DATS, mandatory: the last delivery date to include.
    • Select-option S_REG for the region.
  • Show the result with CL_SALV_TABLE. The output table has these columns, with these names: FARM_ID, FARM_NAME, REGION, LITRES, DELIVERIES.

5. Business rules

  1. Include a delivery only if DELIV_DATE is on or after P_FROM and on or before P_TO. Both limits are included.
  2. Include a farm only if REGION is in S_REG. An empty S_REG includes every region. A line with sign E in S_REG excludes its region.
  3. Show one line for each included farm. A farm without an included delivery also gets a line.
  4. LITRES is the sum of the litres of the included deliveries of the farm. LITRES is 0 if the farm has no included delivery.
  5. DELIVERIES is the number of included deliveries of the farm. DELIVERIES is 0 if the farm has no included delivery.
  6. Sort the lines by LITRES, the highest value first. If two lines have the same LITRES, sort them by FARM_ID, the lowest value first.
  7. FARM_NAME and REGION are the values of the farm.

6. Constraints

  • Release target: 7.58.
  • Coding standards: Clean ABAP. Read each table with one database access.
  • Out of scope: do not change {{P}}FARM and {{P}}MILK.

7. Acceptance

  • The program is active and has no syntax error.
  • The hidden tests pass.
  • Write ABAP Unit tests as local test classes in the program.