adesso business consulting Stellenangebote
Software Engineer Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
Lesezeichen: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Die Seite wurde geleert. Markierung: Geleert |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
TYPES: BEGIN OF zstock, | |||
matnr TYPE matnr, "char40 | |||
werks TYPE werks_d, "char04 | |||
lgort TYPE lgort_d, "char04 | |||
labst TYPE labst, "quan13 | |||
END OF zstock. | |||
DATA lt_mard TYPE TABLE OF zstock, | |||
lt_stock TYPE TABLE OF zstock. | |||
" Beispiel-Daten | |||
lt_mard = VALUE #( ( matnr = '100' werks = '1710' lgort = '1720' labst = 125 ) | |||
( matnr = '110' werks = '1710' lgort = '1730' labst = 250 ) | |||
( matnr = '110' werks = '1710' lgort = '1730' labst = 500 ) | |||
( matnr = '120' werks = '1710' lgort = '1740' labst = 750 ) ). | |||
" Aggregation mit REDUCE | |||
DATA(lt_stock_reduced) = VALUE zstock_table( | |||
FOR wa IN lt_mard | |||
GROUP BY ( matnr = wa-matnr werks = wa-werks lgort = wa-lgort ) | |||
INTO DATA(group) | |||
LET total_labst = REDUCE i( INIT x = 0 | |||
FOR g IN group | |||
NEXT x = x + g-labst ) | |||
IN ( matnr = group-key-matnr | |||
werks = group-key-werks | |||
lgort = group-key-lgort | |||
labst = total_labst ) ). | |||
" Ausgabe zum Test | |||
LOOP AT lt_stock_reduced INTO DATA(ls). | |||
WRITE: / ls-matnr, ls-werks, ls-lgort, ls-labst. | |||
ENDLOOP. | |||
Aktuelle Version vom 29. März 2026, 13:30 Uhr
TYPES: BEGIN OF zstock,
matnr TYPE matnr, "char40
werks TYPE werks_d, "char04
lgort TYPE lgort_d, "char04
labst TYPE labst, "quan13
END OF zstock.
DATA lt_mard TYPE TABLE OF zstock,
lt_stock TYPE TABLE OF zstock.
" Beispiel-Daten lt_mard = VALUE #( ( matnr = '100' werks = '1710' lgort = '1720' labst = 125 )
( matnr = '110' werks = '1710' lgort = '1730' labst = 250 )
( matnr = '110' werks = '1710' lgort = '1730' labst = 500 )
( matnr = '120' werks = '1710' lgort = '1740' labst = 750 ) ).
" Aggregation mit REDUCE DATA(lt_stock_reduced) = VALUE zstock_table(
FOR wa IN lt_mard
GROUP BY ( matnr = wa-matnr werks = wa-werks lgort = wa-lgort )
INTO DATA(group)
LET total_labst = REDUCE i( INIT x = 0
FOR g IN group
NEXT x = x + g-labst )
IN ( matnr = group-key-matnr
werks = group-key-werks
lgort = group-key-lgort
labst = total_labst ) ).
" Ausgabe zum Test LOOP AT lt_stock_reduced INTO DATA(ls).
WRITE: / ls-matnr, ls-werks, ls-lgort, ls-labst.
ENDLOOP.