Transcript

SAP ABAP Dynamic Internal table and Processing 02Another method of creating and processing dynamic internal table in ABAP.REPORT zpwtest .

DATA: lv_tablename TYPE string VALUE 'SFLIGHT'.DATA: lv_dref TYPE REF TO data.

DATA: sflighttype TYPE REF TO cl_abap_structdescr, tabletype TYPE REF TO cl_abap_tabledescr, comp_tab TYPE cl_abap_structdescr=>component_table, new_comp_tab LIKE comp_tab, linetype TYPE REF TO cl_abap_structdescr, dref TYPE REF TO data.

FIELD-SYMBOLS: LIKE LINE OF comp_tab.FIELD-SYMBOLS: TYPE ANY TABLE.

*&---------------------------------------------------------------------&* Start of Selection*&---------------------------------------------------------------------&START-OF-SELECTION.

* Creation of dynamic internal table CREATE DATA lv_dref TYPE TABLE OF (lv_tablename).

FIELD-SYMBOLS: TYPE STANDARD TABLE.

ASSIGN lv_dref->* TO .

SELECT * FROM sflight INTO TABLE .

sflighttype ?= cl_abap_typedescr=>describe_by_name('SFLIGHT'). comp_tab = sflighttype->get_components( ).

LOOP AT comp_tab ASSIGNING . CASE -name. WHEN 'CARRID' OR 'CONNID' OR 'FLDATE' OR 'PRICE' OR 'CURRENCY'. APPEND TO new_comp_tab. ENDCASE. ENDLOOP.

linetype = cl_abap_structdescr=>create( new_comp_tab ). tabletype = cl_abap_tabledescr=>create( p_line_type = linetype p_table_kind = cl_abap_tabledescr=>tablekind_std ).

CREATE DATA dref TYPE HANDLE tabletype. ASSIGN dref->* TO .

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE .

FIELD-SYMBOLS: TYPE ANY. FIELD-SYMBOLS: TYPE ANY. LOOP AT ASSIGNING . WRITE: /. LOOP AT new_comp_tab ASSIGNING . ASSIGN COMPONENT sy-tabix OF STRUCTURE TO . WRITE: . ENDLOOP. ENDLOOP.