Files
abap-llm/tasks_gen/train/G1121/spec.md
2026-10-05 18:02:52 +02:00

55 lines
2.2 KiB
Markdown

# 1. Goal
Summarise the harvest of two growing rooms of a mushroom farm. The store keeper
calls one function module for the two rooms. The function module reads the
harvest records of the two rooms and returns the summary.
# 2. Open questions
None.
# 3. Context
- Function group {{P}}FG_MUSH exists in package $TMP.
- Table {{P}}HARVEST exists in package $TMP. It holds the harvest records of
all growing rooms. Its fields are room_id, grade, batch_no and weight_kg. One
record is the weight of one batch of one grade in one room.
- The function module reads the harvest records of the two rooms from this
table.
# 4. Contract
- Create the function module {{P}}MUSH_HARVEST in function group {{P}}FG_MUSH.
- Interface of {{P}}MUSH_HARVEST:
IMPORTING iv_room_a TYPE string
IMPORTING iv_room_b TYPE string
EXPORTING ev_total_kg TYPE decfloat34
EXPORTING ev_room_count TYPE i
EXPORTING ev_top_grade TYPE char1
EXCEPTIONS no_stock
# 5. Business rules
1. A harvest record counts only if all of these conditions are true:
- its room_id is not empty,
- its room_id is equal to iv_room_a or to iv_room_b,
- its grade is 'A', 'B' or 'C',
- its weight_kg is greater than zero.
2. A record that does not count is ignored. It does not cause an error.
3. ev_total_kg is the sum of the weight_kg of all counting records. If no
record counts, ev_total_kg is 0.
4. ev_room_count is the number of different room_id values among the counting
records. If no record counts, ev_room_count is 0.
5. ev_top_grade is the grade with the highest sum of weight_kg among the
counting records. If two grades have the same sum, ev_top_grade is the grade
that comes first in alphabetical order. If no record counts, ev_top_grade is
initial.
6. If no record counts, the function module raises the exception NO_STOCK.
7. If at least one record counts, the function module does not raise an
exception.
# 6. Constraints
- Release target: ABAP Platform 2025 (SAP_BASIS 816).
- Coding standards: Clean ABAP. Keep the function module below 40 statements.
- Out of scope: do not change table {{P}}HARVEST.
# 7. Acceptance
- The function module is active and has no syntax error.
- The hidden tests pass.
- Write ABAP Unit tests for the function module in a global test class.