Variablen zur Laufzeit erstellen (Feldsymbolen, Referenzen, Schleife)
Es kommt vor, dass Variablen erst zur Laufzeit erstellt werden sollen, die einem Feldsymbol zugeordnet werden und nach Vearbeitung zu einer Referenz gewandelt wird, die Methoden mitgegeben werden können.
So ist möglich dynamisch mit Variablen, Strukturen oder Tabellen zuarbeiten.
Struktur zur Laufzeit und Verarbeiting in LOOP
DATA: str_name TYPE string,
line TYPE REF TO data,
error_occurs TYPE abap_boolean,
r_structure TYPE REF TO data.
FIELD-SYMBOLS: <structure> TYPE any.
str_name = get_structure( ).
CREATE DATA line TYPE (str_name).
ASSIGN line->* TO <structure>.
LOOP AT it_splitted_data_colums ASSIGNING FIELD-SYMBOL(<splitted_data>).
ASSIGN COMPONENT sy-tabix OF STRUCTURE <structure> TO FIELD-SYMBOL(<field>).
IF sy-subrc = 0.
<field> = <splitted_data>.
ENDIF.
ENDLOOP.
GET REFERENCE OF <structure> INTO r_structure.
rs_converted_data_col = r_structure.
Der Rückgabe- oder Exportparameter in der Methode könnte wie folgt aussehen: Parameter: value( RS_CONVERTED_DATA_COL ) TYPE REF TO DATA
Der Parameter, wo die Methode aufgerufen wird, wiefolgt: RECEIVING rs_converted_data_col = DATA(build_struc)
Die Referenz wird einem Feldsymbol assignt, wo die Methode aufgerufen wird und z.B. einem Feldsymbol mit TYPE STANDARD TABLE übergeben:
FIELD-SYMBOLS: <struc_tab> TYPE STANDARD TABLE.
FIELD-SYMBOLS: <structure> TYPE any.
DATA:lv_line TYPE REF TO data.
DATA(lv_str_name) = 'ZZPO_HEADER'.
CREATE DATA lv_line TYPE TABLE OF (lv_str_name).
ASSIGN lv_line->* TO <struc_tab>.
ASSIGN build_struc->* TO <structure>.
APPEND <structure> TO <struc_tab>.
Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud