adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
Variablen zur Laufzeit erstellen (Feldsymbolen, Referenzen, Schleife)
Aus SAP Wiki ツ
Version vom 12. August 2021, 08:06 Uhr von M1ch3lde (Diskussion | Beiträge) (→Struktur zur Laufzeit und Verarbeiting in LOOP)
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>.