in src/zgoog_cl_bqtr_gen_bw_object.clas.abap [0:0]
METHOD create_dtp.
CONSTANTS:
lc_delta_load TYPE rsbupdmode VALUE 'D'.
DATA:
lo_exception TYPE REF TO cx_root,
lo_dtp TYPE REF TO cl_rsbk_dtp,
lv_dtpnm_empty TYPE rsbkdtpnm,
ls_dtp TYPE rsbkdtp,
lo_collection TYPE REF TO cl_rsbk_dtp_collection,
lv_objnm TYPE sobj_name,
ls_tlogo TYPE rstran_s_tlogo,
lt_tlogo TYPE rstran_t_tlogo.
CLEAR: et_return, ev_sy_subrc.
MOVE-CORRESPONDING iv_tlogo_ds TO ls_tlogo.
APPEND ls_tlogo TO lt_tlogo.
MOVE-CORRESPONDING iv_tlogo_trnf TO ls_tlogo.
APPEND ls_tlogo TO lt_tlogo.
MOVE-CORRESPONDING iv_tlogo_adso TO ls_tlogo.
APPEND ls_tlogo TO lt_tlogo.
TRY.
lo_dtp = cl_rsbk_dtp=>factory(
i_dtp = lv_dtpnm_empty ).
lo_dtp->copy_nvers_from_tlogo_list(
i_t_tlogo = lt_tlogo
).
lo_dtp->if_rsbk_dtp_maintain~set_updmode( iv_tlogo_ds-updmode ).
ls_dtp = lo_dtp->if_rsbk_dtp_display~get_dtp( ).
MOVE ls_dtp-dtp TO lv_objnm.
CREATE OBJECT lo_collection.
lo_collection->add_tlogo(
EXPORTING
i_objnm = lv_objnm
).
lo_collection->save(
EXPORTING
i_with_cto = abap_false
).
CATCH cx_root INTO lo_exception.
ev_sy_subrc = 4.
add_bapiret2_from_cx_root(
EXPORTING
io_error = lo_exception
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDTRY.
* Try to activate dtp
TRY.
lo_collection->activate(
EXPORTING
i_with_cto = abap_false
i_force_activation = abap_true
i_show_check_protocol = abap_false
i_with_check = abap_false
).
CATCH cx_root INTO lo_exception.
ev_sy_subrc = 4.
add_bapiret2_from_cx_root(
EXPORTING
io_error = lo_exception
CHANGING
ct_bapiret2 = et_return ).
RETURN.
ENDTRY.
* Return generated DTP name
ev_dtpnm = ls_dtp-dtp.
lo_dtp->dequeue_dtp_for_request( ).