Variablen generisch typisieren mit Create Data

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Dynamische/Generische Programmierung.

Siehe Kategorie: Dynamische/Generische Programmierung.

Es besteht manchmal die Notwendigkeit Variablen anzulegen, die erst während der Laufzeit des Programms typisiert werden. Eine Möglichkeit dafür ist der Befehl CREATE DATA. Die Anweisung CREATE DATA erzeugt ein anonymes Datenobjekt und weist die Referenz auf das Datenobjekt der Referenzvariablen dref zu.

Hier gibt es einen Parameter, in dem eine Tabelle eingetragen wird. Das Feldsymbol <FS_TABLE> wird in Abhängigkeit von diesem Parameter typisiert und kann dann entsprechende Tabelleninhalte aufnehmen

Parameters: p_tab type TABNAME16.

Data: dref type ref to data.

FIELD-SYMBOLS: <fs_table> type standard table,
               <fs_wa>    type any,
               <fs_field> type any.

* mit (p_tab) wird auf Inhalt der Variablen typisiert
CREATE DATA dref TYPE STANDARD TABLE OF (p_tab).

* Assign Feldsymbol durch Dereferenzierung des Zeigers DREF
ASSIGN dref->* TO <fs_table>.

* Selektion aller Daten der Datenbanktabelle in die interne Tabelle
Select *
 from (p_tab)
 into <fs_table>.

Nun wird die interne Tabelle <FS_TABLE> Zeile für Zeile und Feld für Feld ausgelesen. Da die Felder der Tabelle nicht statisch bekannt sind, können sie auch nicht statisch angesprochen werden.

loop at <fs_table> assigning <fs_wa>.
 
  do.
    assign component sy-index of structure <fs_wa> to <fs_field>.

    if sy-subrc <> 0.
      exit.
    else.
       ...
    endif.
  enddo.

endloop.

Web-Seiten

Literatur