in src/zgoog_i_bqtr_gen_repl_obj_im1.prog.abap [0:0]
METHOD create.
DATA: lt_return TYPE bapiret2_t.
DATA: lv_sy_subrc TYPE sy-subrc.
DATA: ls_tlogo_adso TYPE zgoog_cl_bqtr_gen_bw_object=>t_tlogo.
DATA: lv_adso_name TYPE rsoadsonm.
DATA: ls_tlogo_ds TYPE zgoog_cl_bqtr_gen_bw_object=>t_tlogo.
DATA: lv_ds_name TYPE string,
lv_durmi TYPE btcpmin,
lv_durho TYPE btcphour.
DATA: ls_tlogo_trnf TYPE zgoog_cl_bqtr_gen_bw_object=>t_tlogo.
DATA: lv_dtp TYPE rsbkdtpnm.
lv_ds_name = iv_ds.
zgoog_cl_bqtr_gen_bw_object=>create_bw_ds(
EXPORTING
iv_ds = lv_ds_name
iv_dsnam = iv_dsname
iv_logsys = iv_logsy
iv_applnm = iv_appl
IMPORTING
es_tlogo = ls_tlogo_ds
ev_sy_subrc = lv_sy_subrc
et_return = lt_return ).
lv_adso_name = iv_adso.
add_status( iv_ds = iv_ds
iv_description = 'BW Data Source'
iv_value = |{ iv_dsname } with ODP Provider { lv_ds_name } |
it_return = lt_return ).
IF ls_tlogo_ds IS NOT INITIAL.
zgoog_cl_bqtr_gen_bw_object=>create_adso(
EXPORTING
iv_adsonm = lv_adso_name
iv_odpname = ls_tlogo_ds-odpname
iv_logsys = iv_logsy
IMPORTING
es_tlogo = ls_tlogo_adso
ev_sy_subrc = lv_sy_subrc
et_return = lt_return ).
add_status( iv_ds = iv_ds
iv_description = 'Advanced Data Store Object (ADSO)'
iv_value = CONV #( lv_adso_name )
it_return = lt_return ).
IF ls_tlogo_adso IS NOT INITIAL.
zgoog_cl_bqtr_gen_bw_object=>create_trnf(
EXPORTING
iv_mass_tr_key = iv_trkey
iv_data_source = lv_ds_name
iv_tlogo_ds = ls_tlogo_ds
iv_tlogo_adso = ls_tlogo_adso
iv_mandt_fval = iv_mfnam
IMPORTING
es_tlogo = ls_tlogo_trnf
ev_sy_subrc = lv_sy_subrc
et_return = lt_return ).
add_status( iv_ds = iv_ds
iv_description = 'Data Transformation (RSDS)'
iv_value = |RSDS { lv_ds_name }/{ iv_logsy } -> ADSO { lv_adso_name }|
it_return = lt_return ).
IF ls_tlogo_trnf IS NOT INITIAL.
zgoog_cl_bqtr_gen_bw_object=>create_dtp(
EXPORTING
iv_tlogo_ds = ls_tlogo_ds
iv_tlogo_adso = ls_tlogo_adso
iv_tlogo_trnf = ls_tlogo_trnf
IMPORTING
ev_dtpnm = lv_dtp
ev_sy_subrc = lv_sy_subrc
et_return = lt_return ).
add_status( iv_ds = iv_ds
iv_description = 'Data Transfer Process'
iv_value = |{ lv_ds_name }/{ iv_logsy } -> { lv_dtp }|
it_return = lt_return ).
IF lv_dtp IS NOT INITIAL.
IF p_min = abap_true.
lv_durmi = iv_durmi.
ELSEIF p_hour = abap_true.
lv_durho = iv_durmi.
ENDIF.
zgoog_cl_bqtr_gen_bw_object=>create_trigger(
EXPORTING
iv_trigger = CONV #( iv_trig )
iv_prdmin = lv_durmi
iv_prdhours = lv_durho
IMPORTING
ev_sy_subrc = lv_sy_subrc
et_return = lt_return
).
add_status( iv_ds = iv_ds
iv_description = 'Process Chain Trigger'
iv_value = |{ iv_trig }|
it_return = lt_return ).
IF lv_sy_subrc = 0.
zgoog_cl_bqtr_gen_bw_object=>create_process_chain(
EXPORTING
iv_chain = iv_chain
iv_infoara = iv_info
iv_active = iv_active
iv_trigger = CONV #( iv_trig )
iv_dtp_load = CONV #( lv_dtp )
iv_adso = CONV #( ls_tlogo_adso-objnm )
IMPORTING
ev_sy_subrc = lv_sy_subrc
et_return = lt_return
).
add_status( iv_ds = iv_ds
iv_description = 'Process Chain'
iv_value = |{ iv_chain }|
it_return = lt_return ).
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.