Beispiel 1 (APPEND CORRESPONDING)
* Typ für Tabelle mit kompletten Daten
TYPES: BEGIN OF ty_long,
posnr TYPE posnr,
matnr TYPE matnr,
vbeln TYPE vbeln,
flag_ok TYPE boolean,
END OF ty_long.
* Typ für Ausgabetabelle, Felder hier nur vom Datentyp string
TYPES: BEGIN OF ty_short,
posnr TYPE string,
matnr TYPE string,
vbeln TYPE string,
END OF ty_short.
DATA: it_long TYPE STANDARD TABLE OF ty_long WITH DEFAULT KEY.
DATA: it_short TYPE STANDARD TABLE OF ty_short WITH DEFAULT KEY.
* Beispieldaten
it_long = VALUE #( ( posnr = 1 matnr = '1111111111' vbeln = '3333333333' flag_ok = abap_true )
( posnr = 2 matnr = '2222222222' vbeln = '4444444444' flag_ok = abap_false )
( posnr = 3 matnr = '3333333333' vbeln = '5555555555' flag_ok = abap_true ) ).
* nur Datensätze kopieren, wo Flag gesetzt
LOOP AT it_long ASSIGNING FIELD-SYMBOL(<fs_l>) WHERE ( flag_ok = abap_true ).
* korrespondierende (namensgleiche) Felder des Datensatzes vom Typ ty_long an
* Tabelle mit Datensätzen vom Typ ty_short anhängen
APPEND CORRESPONDING ty_short( <fs_l> ) TO it_short.
ENDLOOP.
* Testdaten ausgeben
LOOP AT it_short ASSIGNING FIELD-SYMBOL(<fs_s>).
WRITE: / <fs_s>-posnr, <fs_s>-matnr, <fs_s>-vbeln.
ENDLOOP.
Beispiel 2 (CORRESPONDING, FILTER)
* Typ für Tabelle mit kompletten Daten
TYPES: BEGIN OF ty_long,
posnr TYPE posnr,
matnr TYPE matnr,
vbeln TYPE vbeln,
flag_ok TYPE boolean,
END OF ty_long.
* Typ für Ausgabetabelle, Felder hier nur vom Datentyp string
TYPES: BEGIN OF ty_short,
posnr TYPE string,
matnr TYPE string,
vbeln TYPE string,
END OF ty_short.
DATA: it_long TYPE SORTED TABLE OF ty_long WITH UNIQUE KEY posnr WITH NON-UNIQUE SORTED KEY flag COMPONENTS flag_ok.
DATA: it_short TYPE STANDARD TABLE OF ty_short WITH DEFAULT KEY.
* Beispieldaten
it_long = VALUE #( ( posnr = 1 matnr = '1111111111' vbeln = '3333333333' flag_ok = abap_true )
( posnr = 2 matnr = '2222222222' vbeln = '4444444444' flag_ok = abap_false )
( posnr = 3 matnr = '3333333333' vbeln = '5555555555' flag_ok = abap_true ) ).
* nur Datensätze kopieren, wo Flag gesetzt
* korrespondierende (namensgleiche) Felder des Datensatzes vom Typ ty_long in
* Tabelle mit Datensätzen vom Typ ty_short kopieren
it_short = CORRESPONDING #( FILTER #( it_long USING KEY flag WHERE flag_ok = abap_true ) ).
* Testdaten ausgeben
LOOP AT it_short ASSIGNING FIELD-SYMBOL(<fs_s>).
WRITE: / <fs_s>-posnr, <fs_s>-matnr, <fs_s>-vbeln.
ENDLOOP.