create_dtp

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( ).