Files
abap-llm/tasks_gen/eval/G0016/seed/stock_net.prog.abap
Kral 5de5e2851c Generator: pilot analysis and fixes; G0002-G0021 tasks; handover notes merged
- Static bundle checks (name length, seed type, reserved words, contract test classes,
  testclasses_file), local abaplint parser check before SAP, max_tokens, robust JSON parse
- Runner: G2 for CDS views with parameters, contract_check detail in report
- G0020 and G0013 fixed by review and revalidated (oracle 100, null 0)
- Pilot results in docs/faz1-tasarim.md 11e; handover notes merged into CLAUDE.md and docs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 05:04:23 +02:00

83 lines
2.3 KiB
ABAP

REPORT {{p}}stock_net.
TYPES: BEGIN OF ty_key,
material TYPE {{p}}move-material,
plant TYPE {{p}}move-plant,
END OF ty_key,
BEGIN OF ty_out,
material TYPE {{p}}move-material,
plant TYPE {{p}}move-plant,
net_qty TYPE {{p}}move-quantity,
move_count TYPE i,
END OF ty_out.
DATA: gv_matnr TYPE {{p}}move-material,
gv_from TYPE d,
gv_to TYPE d,
gv_gr TYPE {{p}}move-quantity,
gv_gi TYPE {{p}}move-quantity,
gv_cnt TYPE i,
gs_key TYPE ty_key,
gs_out TYPE ty_out,
gt_keys TYPE STANDARD TABLE OF ty_key,
gt_out TYPE STANDARD TABLE OF ty_out,
go_alv TYPE REF TO cl_salv_table,
gx_msg TYPE REF TO cx_salv_msg.
PARAMETERS: p_from TYPE d OBLIGATORY,
p_to TYPE d OBLIGATORY.
SELECT-OPTIONS: s_matnr FOR gv_matnr.
START-OF-SELECTION.
gv_from = p_from.
gv_to = p_to.
SELECT DISTINCT material, plant
FROM {{p}}move
INTO TABLE gt_keys
WHERE move_date >= gv_from
AND move_date <= gv_to
AND material IN s_matnr
ORDER BY material, plant.
LOOP AT gt_keys INTO gs_key.
CLEAR: gv_gr, gv_gi, gv_cnt, gs_out.
SELECT SUM( quantity ) FROM {{p}}move INTO gv_gr
WHERE material = gs_key-material
AND plant = gs_key-plant
AND move_type = 'GR'
AND move_date >= gv_from
AND move_date <= gv_to.
SELECT SUM( quantity ) FROM {{p}}move INTO gv_gi
WHERE material = gs_key-material
AND plant = gs_key-plant
AND move_type = 'GI'
AND move_date >= gv_from
AND move_date <= gv_to.
SELECT COUNT(*) FROM {{p}}move INTO gv_cnt
WHERE material = gs_key-material
AND plant = gs_key-plant
AND move_date >= gv_from
AND move_date <= gv_to.
gs_out-material = gs_key-material.
gs_out-plant = gs_key-plant.
gs_out-net_qty = gv_gr - gv_gi.
gs_out-move_count = gv_cnt.
APPEND gs_out TO gt_out.
ENDLOOP.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = gt_out.
CALL METHOD go_alv->display.
CATCH cx_salv_msg INTO gx_msg.
MESSAGE gx_msg TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.