Wenn man die Struktur kenn dynamisch eine Tabelle zusammen setzen
In diesem Fall wird es genutzt um einen dynamisch Select zu machen
************************************************************************
** Daten Selektieren
************************************************************************
TRY.
* Strukturdeskriptor für Komponenten (Spalten) der Tabelle anhand einer vorhandenen Struktur erzeugen
DATA(o_struct_desc) = cl_abap_structdescr=>describe_by_name( <fs_name>-item ). ""Nur der Übergabe Parameter ändert sich
"" (z.B. DD04L)
* Tabellendeskriptor
DATA(o_table_desc) = cl_abap_tabledescr=>create(
p_line_type = CAST #( o_struct_desc ) " Spalten
p_table_kind = cl_abap_tabledescr=>tablekind_std " Tabellentyp STANDARD TABLE
p_unique = abap_false " NON-UNIQUE KEY
).
* Tabellenobjekt anhand des Tabellendeskriptors erstellen
DATA: o_table TYPE REF TO data.
CREATE DATA o_table TYPE HANDLE o_table_desc.
* Feldsymbol auf das Tabellenobjekt
FIELD-SYMBOLS <table> TYPE ANY TABLE.
ASSIGN o_table->* TO <table>.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.
************************************************************************
** Dynamischer Tabellennamen Selektieren
************************************************************************
DATA(lf_tabname) = CONV char30( <fs_name>-item ).
************************************************************************
** Daten Selektieren
************************************************************************
SELECT * FROM (lf_tabname) INTO TABLE @<table>.
IF p_rb_1 = 'X'.
LOOP AT <table> ASSIGNING FIELD-SYMBOL(<fs_table>).
ASSIGN COMPONENT 1 OF STRUCTURE <fs_table> TO FIELD-SYMBOL(<cell>).
IF <cell>(1) <> 'Z' AND <cell>(1) <> 'Y'." AND <cell>(10) <> '/SWISSCOM/' .
DELETE TABLE <table> FROM <fs_table>.
ELSE.
* WRITE: / <cell>.
ENDIF.
ENDLOOP.
ENDIF.