LOOP AT lt_zmmt0183 INTO DATA(ls_zmmt0183).
rang_matkl[] = VALUE #( BASE rang_matkl[] ( sign = 'I' option = 'EQ' low = ls_zmmt0183-matkl ) ).
ENDLOOP.
<gs_out>-message
= REDUCE string( INIT x TYPE string
FOR wa IN <gs_out>-messages[]
NEXT x = x && ';' && wa-message ).
REDUCE:根据物料号分组,把分组内的物料号串联给另一个内表的字段。
LOOP AT gt_out ASSIGNING FIELD-SYMBOL(<fs_out>) GROUP BY <fs_out>-matnr.
READ TABLE gt_out_temp INTO DATA(gs_out_temp) WITH KEY matnr =<fs_out>-matnr.
gs_out_temp-lifnr_all
= REDUCE string( INIT x TYPE string
FOR wa IN GROUP <fs_out>
NEXT x = x && wa-lifnr &&';').
MODIFY gt_out_temp FROM gs_out_temp TRANSPORTING lifnr_all
WHERE matnr = gs_out_temp-matnr.
ENDLOOP.
VALUE:循环赋值
LOOP AT lt_cdpos INTO DATA(ls_cdpos).
so_matnr[]= VALUE #( BASE so_matnr[] ( sign = 'I' option = 'EQ' low = ls_cdpos-objectid ) ).
len = strlen( ls_cdpos-tabkey )-4.
so_werks[]= VALUE #( BASE so_werks[] ( sign = 'I' option = 'EQ' low = ls_cdpos-tabkey+len(4) ) ).
ENDLOOP.
VALUE:定义工作区并省略read操作
SELECT matnr,
bstrf
FROM marc
INTO TABLE @DATA(lt_marc)
FOR ALL ENTRIES IN @gt_po_out
WHERE matnr = @gt_po_out-matnr.
LOOP AT gt_po_out ASSIGNING FIELD-SYMBOL(<ls_po_out>).
DATA(ls_marc) = VALUE #( lt_marc[ matnr = <ls_po_out>-matnr ] OPTIONAL ).
ENDLOOP.