METHOD prapare_table4xml.
DATA:
lv_abap_typekind TYPE abap_typekind,
lr_type TYPE REF TO cl_abap_typedescr,
lr_struct TYPE REF TO cl_abap_structdescr,
lt_comp TYPE abap_component_view_tab.
FIELD-SYMBOLS <fs> TYPE any.
*
** Get fields of structure
lr_type = cl_abap_structdescr=>describe_by_name( p_name = iv_typname ).
TRY.
lr_struct ?= lr_type.
lt_comp = lr_struct->get_included_view( ).
CATCH cx_sy_move_cast_error.
RETURN.
ENDTRY.
LOOP AT ct_tab ASSIGNING FIELD–SYMBOL(<fs_line>).
LOOP AT lt_comp ASSIGNING FIELD–SYMBOL(<fs_field>).
ASSIGN COMPONENT <fs_field>–name OF STRUCTURE <fs_line> TO <fs>.
CHECK sy–subrc = 0 AND <fs> IS INITIAL.
lv_abap_typekind = cl_abap_elemdescr=>get_data_type_kind( p_data = <fs> ).
CHECK sy–subrc = 0 AND lv_abap_typekind NE ‚N‘ AND lv_abap_typekind NE ‚I‘ AND lv_abap_typekind NE ‚P‘ .
<fs> = iv_overlay.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
Definition:
CLASS-METHODS prapare_table4xml
IMPORTING iv_overlay TYPE char2
iv_typname TYPE slis_tabname
CHANGING ct_tab TYPE ANY TABLE.
Aufruf:
CALL METHOD prapare_table4xml
EXPORTING
iv_overlay = ‚~‘
iv_typname = ‚TYS_DAMAGE_OBJECT‘
CHANGING
ct_tab = gt_demage_obj.