in src/zgoog_r_bqtr_demo_dyn_load.prog.abap [0:0]
METHOD process.
DATA: lo_ex TYPE REF TO cx_root.
DATA: lo_bqtr TYPE REF TO /goog/cl_bqtr_data_load.
TRY.
CREATE OBJECT lo_bqtr
EXPORTING
iv_mass_tr_key = p_trkey
iv_data_source = p_dsrc.
DATA: lt_data_ref TYPE REF TO data.
FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.
CREATE DATA lt_data_ref TYPE STANDARD TABLE OF (p_dsrc).
ASSIGN lt_data_ref->* TO <lt_data>.
SELECT *
FROM (p_dsrc)
INTO TABLE <lt_data>
UP TO p_max ROWS.
DATA: lv_error_code TYPE sysubrc.
DATA: lt_return TYPE bapiret2_t.
lo_bqtr->replicate_data(
EXPORTING
it_content = <lt_data>
IMPORTING
ev_error_code = lv_error_code
et_return = lt_return ).
IF lv_error_code = 0.
DATA: lv_count TYPE i.
lv_count = lines( <lt_data> ).
WRITE: / |{ lv_count } Records sent to BigQuery|.
ELSE.
DATA: ls_return TYPE bapiret2.
LOOP AT lt_return INTO ls_return.
WRITE: / | Error sending data to BigQuery|.
DATA: lv_message_out TYPE string.
MESSAGE ID ls_return-id TYPE 'I' NUMBER ls_return-number
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4
INTO lv_message_out.
WRITE: / lv_message_out.
ENDLOOP.
ENDIF.
CATCH cx_root INTO lo_ex.
WRITE: / lo_ex->get_text( ).
RETURN.
ENDTRY.