in src/zgoog_cl_data_cluster.clas.abap [0:0]
METHOD EXPORT_DATA_MULTIPLE.
FIELD-SYMBOLS:
<lt_source_data> TYPE ANY TABLE,
<lt_insert> TYPE STANDARD TABLE.
ASSIGN it_data TO <lt_source_data>.
DATA: lr_insert_row TYPE REF TO data.
DATA: lr_insert_table TYPE REF TO data.
FIELD-SYMBOLS:
<ls_insert_row> TYPE any.
CREATE DATA lr_insert_row TYPE (iv_table).
ASSIGN lr_insert_row->* TO <ls_insert_row>.
CREATE DATA lr_insert_table TYPE STANDARD TABLE OF (iv_table).
ASSIGN lr_insert_table->* TO <lt_insert>.
DATA: lr_key_tab TYPE REF TO data.
FIELD-SYMBOLS: <ls_source_wa> TYPE any,
<lt_select_key> TYPE STANDARD TABLE.
lr_key_tab = construct_key_table( iv_table ).
ASSIGN lr_key_tab->* TO <lt_select_key>.
LOOP AT <lt_source_data> ASSIGNING <ls_source_wa>.
CLEAR: <ls_insert_row>.
MOVE-CORRESPONDING <ls_source_wa> TO
<ls_insert_row>.
FIELD-SYMBOLS: <lv_data_value> TYPE any.
ASSIGN COMPONENT iv_data_field OF STRUCTURE <ls_source_wa>
TO <lv_data_value>.
build_export_key_itab(
EXPORTING
is_export_wa = <ls_insert_row>
iv_data = <lv_data_value>
iv_format = iv_format
CHANGING
ct_export = <lt_insert>
ct_key = <lt_select_key> ).
ENDLOOP.
delete_data_multile(
iv_table = iv_table
it_key = <lt_select_key> ).
IF <lt_insert> IS NOT INITIAL.
INSERT (iv_table) FROM TABLE <lt_insert>.
ev_db_count = sy-dbcnt.
ENDIF.