DATA: table_name TYPE string VALUE 'spfli'. " Tabellenname
DATA: o_it TYPE REF TO data. " Referenz auf Tabelle
DATA: o_row TYPE REF TO data. " Referenz auf Tabellenzeile
FIELD-SYMBOLS: <fs_table> TYPE ANY TABLE. " Feldsymbol für Arbeit mit Tabelle
FIELD-SYMBOLS: <fs_row> TYPE any. " Feldsymbol für Arbeit mit Zeile
* dynamische Tabelle vom Typ table_name erzeugen
CREATE DATA o_it TYPE TABLE OF (table_name).
* Feldsymbol auf die dynamische Tabelle anlegen
ASSIGN o_it->* TO <fs_table>.
IF <fs_table> IS ASSIGNED.
* dynamische Workarea vom Typ der Tabellenzeile erzeugen
CREATE DATA o_row LIKE LINE OF <fs_table>.
* Feldsymbol auf die Workarea anlegen
ASSIGN o_row->* TO <fs_row>.
IF <fs_row> IS ASSIGNED.
* Daten holen
SELECT * FROM (table_name) INTO TABLE <fs_table>.
* Daten ausgeben
DATA: go_struct TYPE REF TO cl_abap_structdescr.
* herausfinden, wieviele Spalten die Tabelle hat
go_struct ?= cl_abap_typedescr=>describe_by_data( <fs_row> ).
DATA(gt_comp) = go_struct->get_components( ).
* alle Datensätze der Tabelle durchgehen
LOOP AT <fs_table> INTO <fs_row>.
* spaltenweise jeden Datensatz durchgehen
LOOP AT gt_comp ASSIGNING FIELD-SYMBOL(<fs_col>).
* den Inhalt der Strukturkomponente (Zeile) ausgeben
ASSIGN COMPONENT <fs_col>-name OF STRUCTURE <fs_row> TO FIELD-SYMBOL(<fs_cell>).
IF <fs_cell> IS ASSIGNED.
WRITE: <fs_cell>.
ENDIF.
ENDLOOP.
NEW-LINE.
ENDLOOP.
ENDIF.
ENDIF.