- 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>
83 lines
2.3 KiB
ABAP
83 lines
2.3 KiB
ABAP
REPORT {{p}}stock_net_old.
|
|
|
|
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.
|
|
SORT gt_keys 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.
|