[ABAP] Variablen vom Typ XSTRING zusammenfügen (addieren)

Variante 1 (einzelne XSTRINGS)

* HEX-Daten (Beispiel)
DATA(lv_xstring) = CONV xstring( 'A1B1C1' ).
DATA(lv_xstring2) = CONV xstring( 'A2B2C2' ).

* XSTRING + XSTRING
CONCATENATE lv_xstring lv_xstring2 INTO lv_xstring IN BYTE MODE.

* Testausgabe
WRITE: lv_xstring.

Variante 2 (eine Tabelle mit XSTRINGS)

TYPES: ty_it_hex TYPE STANDARD TABLE OF xstring WITH DEFAULT KEY.

* Tabelle mit binären Beispieldaten
DATA(it_hex_data) = VALUE ty_it_hex(
                                     ( CONV xstring( 'AABBCC' ) )
                                     ( CONV xstring( 'DDEEFF' ) )
                                     ( CONV xstring( '001122' ) )
                                     ( CONV xstring( '334455' ) )
                                     ( CONV xstring( '667788' ) )
                                   ).

* Zeilen der Tabelle zu einem XSTRING zusammenfügen
CONCATENATE LINES OF it_hex_data INTO DATA(lv_xstring) IN BYTE MODE.

* Testausgabe
WRITE: lv_xstring.

[ABAP] Interne Tabellen: Daten mit LINES OF anfügen / einfügen

DATA(it_s1) = VALUE stringtab( ( |1| ) ( |1| ) ( |1| ) ).
DATA(it_s2) = VALUE stringtab( ( |2| ) ( |2| ) ( |2| ) ).
DATA(it_s3) = VALUE stringtab( ( |3| ) ( |3| ) ( |3| ) ).
DATA(it_s4) = VALUE stringtab( ( |4| ) ( |4| ) ( |4| ) ).

* Zeilen von it_s2 und it_s3 in it_out einfügen
DATA(it_out) = VALUE stringtab( ( LINES OF it_s2 )
                                ( LINES OF it_s3 )
                              ).

* it_s1 an Stelle INDEX 1 in it_out einfügen
INSERT LINES OF it_s1 INTO it_out INDEX 1.

* it_s4 an Tabelle it_out anfügen
APPEND LINES OF it_s4 TO it_out.

cl_demo_output=>display( it_out ).

[ABAP] Interne Tabellen kopieren mit LINES OF

* Typ-Deklarationen
* Objekt Person
TYPES: BEGIN OF ty_person,
         name TYPE string,
         age  TYPE i,
       END OF ty_person.

* Tabelle mit Personen
TYPES: ty_it_person TYPE STANDARD TABLE OF ty_person WITH DEFAULT KEY.

* interne Tabelle mit Vorbelegung
DATA(it_person) = VALUE ty_it_person( ( age = 10 name = 'Udo' )
                                      ( age = 20 name = 'Horst' )
                                      ( age = 30 name = 'Ulf' ) ).

* alle Einträge der iTab kopieren
DATA(it_person_copy_all) = VALUE ty_it_person( ( LINES OF it_person ) ).

* von Index bis Index der iTab kopieren
DATA(it_person_copy_few) = VALUE ty_it_person( ( LINES OF it_person FROM 1 TO lines( it_person_copy_all ) - 1 ) ).

cl_demo_output=>display( it_person_copy_all ).

cl_demo_output=>display( it_person_copy_few ).