diff --git a/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap b/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap index bc68e9ce9..7e2044f34 100644 --- a/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap +++ b/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap @@ -186,6 +186,7 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION. METHOD delete_sotr_package. DATA lt_sotr_head TYPE STANDARD TABLE OF sotr_head WITH DEFAULT KEY. + DATA lv_obj_name TYPE tadir-obj_name. FIELD-SYMBOLS LIKE LINE OF lt_sotr_head. @@ -211,6 +212,43 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION. ENDLOOP. + " Nothing left, then delete SOTR from TADIR + SELECT * FROM sotr_head INTO TABLE lt_sotr_head WHERE paket = iv_package. + IF sy-subrc <> 0. + SELECT SINGLE obj_name FROM tadir INTO lv_obj_name + WHERE pgmid = 'R3TR' AND object = 'SOTR' AND obj_name = iv_package. + IF sy-subrc = 0. + CALL FUNCTION 'TR_TADIR_INTERFACE' + EXPORTING + wi_delete_tadir_entry = abap_true + wi_test_modus = abap_false + wi_tadir_pgmid = 'R3TR' + wi_tadir_object = 'SOTR' + wi_tadir_obj_name = lv_obj_name + EXCEPTIONS + OTHERS = 1 ##FM_SUBRC_OK. + + IF zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ) = abap_true. + CALL FUNCTION 'RS_CORR_INSERT' + EXPORTING + object = lv_obj_name + object_class = 'SOTR' + mode = 'D' + global_lock = abap_true + devclass = iv_package + suppress_dialog = abap_true + EXCEPTIONS + cancelled = 1 + permission_failure = 2 + unknown_objectclass = 3 + OTHERS = 4. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + ENDIF. + ENDIF. + ENDIF. + ENDMETHOD.