HolsteinD

Dynamic structure generation

Jun 24th, 2021 (edited)
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.21 KB | None | 0 0
  1. DATA: mr_data     TYPE REF TO data,
  2.           mr_str_type TYPE REF TO cl_abap_structdescr,
  3.           mr_tab_type TYPE REF TO cl_abap_tabledescr.
  4.  METHOD generate_structure.
  5.     DATA: wa_fields TYPE zfiaa_dtc_fields,
  6.           lt_comp   TYPE cl_abap_structdescr=>component_table,
  7.           lv_full_name TYPE string.
  8.     FIELD-SYMBOLS <comp> TYPE LINE OF cl_abap_structdescr=>component_table.
  9.     LOOP AT mt_fields INTO wa_fields.
  10.       CONCATENATE wa_fields-tabname wa_fields-fieldname INTO lv_full_name SEPARATED BY '-'.
  11.       APPEND INITIAL LINE TO lt_comp ASSIGNING <comp>.
  12.       <comp>-name = wa_fields-fieldname.
  13.       <comp>-type ?= cl_abap_datadescr=>describe_by_name( lv_full_name ).
  14.     ENDLOOP.
  15.     mr_str_type = cl_abap_structdescr=>create( lt_comp ).
  16.     mr_tab_type = cl_abap_tabledescr=>create( mr_str_type ).
  17.     CREATE DATA mr_data TYPE HANDLE mr_tab_type.
  18.   ENDMETHOD.                    "generate_structure
  19.  
  20.   METHOD generate_fields_string.
  21.     DATA: wa_fields TYPE zfiaa_dtc_fields.
  22.     LOOP AT mt_fields INTO wa_fields.
  23.       CONCATENATE r_fields4select ' ' wa_fields-tabname '~' wa_fields-fieldname INTO r_fields4select.
  24.     ENDLOOP.
  25.   ENDMETHOD.                    "generate_fields_string
Add Comment
Please, Sign In to add comment