Field-Symbol generisch typisieren
Siehe Dynamische/Generische Programmierung.
Siehe Kategorie: Dynamische/Generische Programmierung.
Ein Field-Symbol kann mit "type any", bzw. "type table" oder "type any table" generisch typisiert werden und zur Laufzeit einen konkreten Typ zugewiesen bekommen.
Generisches Field-Symbol TYPE ANY
Das Field-Symbol wird zunächst generisch typisiert.
Field-Symbols: <fs_variable> type any.
Eine CHAR-Variable wird angelegt zur Aufnahme des Namens der Variablen.
Data: lv_output type char10.
Das Feldsymbol erhält einen statischen Typ mit dem Schlüsselbefehl ASSIGN. Das Field-Symbol hat nun den Typ CHAR10.
assign lv_output to <fs_variable>.
Durch die nachfolgende Zuweisung erhält nicht nur lv_output den Wert 'Test', sondern auch <fs_variable>, weil der Zeiger des Field-Symbols auf die Variable lv_output zeigt.
lv_output = 'Test'.
Das Ergebnis wäre nun das gleiche, wenn man statt "lv_output = 'Test'." schreiben würde
<fs_variable> = 'Test'.
Generisches Field-Symbol TYPE TABLE
Das Field-Symbol wird hier als generische Tabelle deklariert mit "type table".
FIELD-SYMBOLS: <gt_pos_data> TYPE table.
Eine Tabelle wird normal typisiert als Standardtabelle.
DATA: gt_coep_ext TYPE Standard table kaep_coep_ext,
Der Typ der statisch typisieren Tabelle GT_COEP_EXT wird dem Field-Symbol zugewiesen. Nun kann normal mit dem Field-Symbol als Tabelle gearbeitet werden.
ASSIGN gt_coep_ext TO <gt_pos_data>.
Generisches Feild-Symbol TYPE CLIKE, CSEQUENCE, DECFLOAT, NUMERIC und andere
Es gibt noch eine Reihe anderer generischer Datentypen.
Siehe https://help.sap.com/doc/abapdocu_750_index_htm/7.50/de-de/abenbuilt_in_types_generic.htm.
Web-Links
Literatur
- ABAP Best Practices, S. 96-98