in src/zgoog_cl_bqtr_gen_bw_object.clas.abap [0:0]
METHOD create_trnf.
DATA:
ls_source TYPE rstran_s_tlogo,
ls_target TYPE rstran_s_tlogo,
lv_subrc TYPE sysubrc,
lo_trfn TYPE REF TO cl_rstran_trfn,
lx_ex TYPE REF TO cx_root.
CLEAR: et_return, ev_sy_subrc.
"TODO - Check existance
MOVE-CORRESPONDING iv_tlogo_ds TO ls_source.
MOVE-CORRESPONDING iv_tlogo_adso TO ls_target.
TRY.
lo_trfn = cl_rstran_trfn=>factory(
EXPORTING
i_s_source = ls_source
i_s_target = ls_target
).
CATCH cx_root INTO lx_ex.
ev_sy_subrc = 4.
add_bapiret2_from_cx_root(
EXPORTING
io_error = lx_ex
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDTRY.
DATA: lv_tranid TYPE rstranid.
lo_trfn->get_tranid(
IMPORTING
e_tranid = lv_tranid ).
apply_routine(
iv_mass_tr_key = iv_mass_tr_key
iv_data_source = iv_data_source
io_trfn = lo_trfn
iv_mandt_fval = iv_mandt_fval ).
* Try to save object
TRY.
lo_trfn->if_rso_tlogo_maintain~save(
EXPORTING
i_with_cto = abap_false
IMPORTING
e_subrc = lv_subrc ).
IF lv_subrc <> 0.
ev_sy_subrc = lv_subrc.
/goog/cl_bqtr_utility=>add_bapiret2_from_sy(
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDIF.
CATCH cx_root INTO lx_ex.
ev_sy_subrc = 4.
add_bapiret2_from_cx_root(
EXPORTING
io_error = lx_ex
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDTRY.
* Try to activate object
lo_trfn->if_rso_tlogo_maintain~activate(
EXPORTING
i_force_activation = abap_true
i_with_cto = abap_false
IMPORTING
e_subrc = lv_subrc ).
IF lv_subrc <> 0.
ev_sy_subrc = lv_subrc.
/goog/cl_bqtr_utility=>add_bapiret2_from_sy(
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDIF.
es_tlogo-objnm = lv_tranid.
es_tlogo-tlogo = 'TRFN'.