diff --git a/src/ui/pages/zcl_abapgit_gui_page_chg_pckg.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_chg_pckg.clas.abap index c57f8898b..9b05cd664 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_chg_pckg.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_chg_pckg.clas.abap @@ -94,7 +94,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION METHODS delete_packages IMPORTING - !it_mapping TYPE ty_mapping + !it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt RAISING zcx_abapgit_exception. @@ -105,6 +105,12 @@ CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION RAISING zcx_abapgit_exception. + METHODS update_sotr_package_assignment + IMPORTING + !it_mapping TYPE ty_mapping + RAISING + zcx_abapgit_exception. + METHODS update_repo_persistence IMPORTING !iv_old_package TYPE devclass @@ -144,6 +150,8 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION. it_mapping = lt_mapping it_tadir = lt_tadir ). + update_sotr_package_assignment( lt_mapping ). + update_repo_persistence( iv_old_package = iv_old_package iv_new_package = iv_new_package ). @@ -151,7 +159,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION. update_repo_checksums( lt_mapping ). IF iv_remove_old = abap_true. - delete_packages( lt_mapping ). + delete_packages( lt_tadir ). ENDIF. zcl_abapgit_repo_srv=>get_instance( )->init( ). @@ -267,6 +275,16 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION. METHOD delete_packages. + DATA lt_tadir LIKE it_tadir. + + lt_tadir = it_tadir. + + DELETE lt_tadir WHERE object <> 'DEVC'. + + SORT lt_tadir DESCENDING BY obj_name. + + zcl_abapgit_objects=>delete( lt_tadir ). + ENDMETHOD. @@ -367,7 +385,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION. lt_checksums = lo_checksums->zif_abapgit_repo_checksums~get( ). - LOOP AT lt_checksums ASSIGNING . + LOOP AT lt_checksums ASSIGNING WHERE item-devclass IS NOT INITIAL. READ TABLE it_mapping ASSIGNING WITH KEY old_package = -item-devclass. ASSERT sy-subrc = 0. @@ -413,6 +431,18 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION. ENDMETHOD. + METHOD update_sotr_package_assignment. + + FIELD-SYMBOLS LIKE LINE OF it_mapping. + + LOOP AT it_mapping ASSIGNING . + UPDATE sotr_head SET paket = -new_package WHERE paket = -old_package ##SUBRC_OK. + UPDATE sotr_headu SET paket = -new_package WHERE paket = -old_package ##SUBRC_OK. + ENDLOOP. + + ENDMETHOD. + + METHOD validate_form. DATA lv_new_package TYPE devclass.