write_archive_filedata_to_bq

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


  METHOD write_archive_filedata_to_bq.

    DATA: lv_handle TYPE syst-tabix.

    DATA: lv_end_of_file     TYPE flag.

    FIELD-SYMBOLS: <ls_obj_data> TYPE astablebuffer.

    DATA: lt_obj_data TYPE as_t_tablebuffer.
    archive_open_for_read(
      EXPORTING
        iv_object                = iv_object
      IMPORTING
        ev_handle                = lv_handle
        ev_sy_subrc              = ev_error_code
        et_return                = et_return
      CHANGING
        ct_files_read_sequential = ct_range_arkey ).

    IF ev_error_code <> 0.
      RETURN.
    ENDIF.

    DO.

      archive_get_next_object(
         EXPORTING
           iv_handle          = lv_handle
         IMPORTING
           ev_sy_subrc        = ev_error_code
           et_return          = et_return
           ev_end_of_file     = lv_end_of_file ).

      IF lv_end_of_file IS NOT INITIAL.
        EXIT.
      ENDIF.

      IF ev_error_code <> 0.
        EXIT.
      ENDIF.

      CLEAR lt_obj_data.
      archive_read_object_by_handle(
         EXPORTING
           iv_handle   = lv_handle
         IMPORTING
           ev_sy_subrc  = ev_error_code
           et_return    = et_return
         CHANGING
           ct_obj_data = lt_obj_data ).

      LOOP AT  lt_obj_data ASSIGNING <ls_obj_data>.

        write_tabledata_to_bq(
          EXPORTING
            iv_mass_tr_key = iv_mass_tr_key
            is_table_data = <ls_obj_data>
          IMPORTING
            ev_error_code  = ev_error_code
            et_return      = et_return ).

        IF ev_error_code <> 0.
          EXIT.
        ENDIF.

      ENDLOOP.

    ENDDO.

    archive_close_file(
        iv_handle = lv_handle ).