mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
SOTR: Fix uninstall (#5558)
After all OTR usage has been removed, uninstall will now also delete the TADIR entry for SOTR. This is necessary in order to delete the corresponding package.
This commit is contained in:
parent
0ab3ee0a06
commit
2415a5c0c0
|
@ -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 <ls_sotr_head> 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.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user