if_ex_arc_del_appl_tabs~on_obj_del_finished

in src/zgoog_cl_badi_arc_write_to_bq.clas.abap [0:0]


METHOD if_ex_arc_del_appl_tabs~on_obj_del_finished.

  DATA: lv_tr_key TYPE zgoog_arch_bq-bq_tr_key.
  DATA: lv_sy_subrc TYPE syst_subrc.
  DATA: lt_return TYPE bapiret2_t.

  FIELD-SYMBOLS: <ls_obj_data> TYPE astablebuffer.
  FIELD-SYMBOLS: <ls_bapiret2> TYPE bapiret2.

  IF iv_testmode IS NOT INITIAL.
    RETURN.
  ENDIF.

  SELECT SINGLE bq_tr_key
    FROM zgoog_arch_bq
    INTO lv_tr_key
    WHERE archiving_object = iv_archiving_object
      AND active = abap_true.
  IF lv_tr_key IS INITIAL.
    RETURN.
  ENDIF.

  DATA: lt_obj_data TYPE as_t_tablebuffer.

  zgoog_cl_archive_utility=>archive_read_object_by_handle(
   EXPORTING
     iv_handle   = iv_handle
   CHANGING
     ct_obj_data = lt_obj_data ).

  LOOP AT lt_obj_data ASSIGNING <ls_obj_data>.
    zgoog_cl_archive_utility=>write_tabledata_to_bq(
      EXPORTING
        iv_mass_tr_key = lv_tr_key
        is_table_data  = <ls_obj_data>
      IMPORTING
        ev_error_code  = lv_sy_subrc
        et_return      = lt_return ).

    IF lv_sy_subrc > 0.
      LOOP AT lt_return ASSIGNING <ls_bapiret2>
           WHERE type CA 'AEX'.
        EXIT.
      ENDLOOP.
      IF <ls_bapiret2> IS ASSIGNED.
        MESSAGE ID <ls_bapiret2>-id TYPE <ls_bapiret2>-type NUMBER <ls_bapiret2>-number
          WITH <ls_bapiret2>-message_v1 <ls_bapiret2>-message_v2 <ls_bapiret2>-message_v3 <ls_bapiret2>-message_v4.
      ENDIF.
    ENDIF.
  ENDLOOP.