mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Set transport request if needed during uninstall or reset local (#1596)
* delete checks: set transport request if needed this ensures that the transport request is set when deleting objects. E.g. uninstalling the repositoy or reset local. * separate type for delete checks
This commit is contained in:
parent
6ced7c04bb
commit
4f9f47cd59
|
@ -228,7 +228,8 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
|
||||||
lv_answer TYPE c LENGTH 1,
|
lv_answer TYPE c LENGTH 1,
|
||||||
lt_unnecessary_local_objs TYPE zif_abapgit_definitions=>ty_tadir_tt,
|
lt_unnecessary_local_objs TYPE zif_abapgit_definitions=>ty_tadir_tt,
|
||||||
lt_selected LIKE lt_unnecessary_local_objs,
|
lt_selected LIKE lt_unnecessary_local_objs,
|
||||||
lt_columns TYPE stringtab.
|
lt_columns TYPE stringtab,
|
||||||
|
ls_checks TYPE zif_abapgit_definitions=>ty_delete_checks.
|
||||||
|
|
||||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||||
|
|
||||||
|
@ -268,7 +269,14 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
|
||||||
et_list = lt_selected ).
|
et_list = lt_selected ).
|
||||||
|
|
||||||
IF lines( lt_selected ) > 0.
|
IF lines( lt_selected ) > 0.
|
||||||
zcl_abapgit_objects=>delete( lt_selected ).
|
ls_checks = lo_repo->delete_checks( ).
|
||||||
|
IF ls_checks-transport-required = abap_true.
|
||||||
|
ls_checks-transport-transport = zcl_abapgit_ui_factory=>get_popups(
|
||||||
|
)->popup_transport_request( ls_checks-transport-type ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
zcl_abapgit_objects=>delete( it_tadir = lt_selected
|
||||||
|
is_checks = ls_checks ).
|
||||||
* update repo cache
|
* update repo cache
|
||||||
lo_repo->refresh( ).
|
lo_repo->refresh( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -282,7 +282,8 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION.
|
||||||
lv_answer TYPE c LENGTH 1,
|
lv_answer TYPE c LENGTH 1,
|
||||||
lo_repo TYPE REF TO zcl_abapgit_repo,
|
lo_repo TYPE REF TO zcl_abapgit_repo,
|
||||||
lv_package TYPE devclass,
|
lv_package TYPE devclass,
|
||||||
lv_question TYPE c LENGTH 100.
|
lv_question TYPE c LENGTH 100,
|
||||||
|
ls_checks TYPE zif_abapgit_definitions=>ty_delete_checks.
|
||||||
|
|
||||||
|
|
||||||
lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||||
|
@ -311,7 +312,14 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
zcl_abapgit_repo_srv=>get_instance( )->purge( lo_repo ).
|
ls_checks = lo_repo->delete_checks( ).
|
||||||
|
IF ls_checks-transport-required = abap_true.
|
||||||
|
ls_checks-transport-transport = zcl_abapgit_ui_factory=>get_popups(
|
||||||
|
)->popup_transport_request( ls_checks-transport-type ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
zcl_abapgit_repo_srv=>get_instance( )->purge( io_repo = lo_repo
|
||||||
|
is_checks = ls_checks ).
|
||||||
|
|
||||||
COMMIT WORK.
|
COMMIT WORK.
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,8 @@ CLASS zcl_abapgit_objects DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS delete
|
CLASS-METHODS delete
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||||
|
!is_checks TYPE zif_abapgit_definitions=>ty_delete_checks OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS jump
|
CLASS-METHODS jump
|
||||||
|
@ -205,7 +206,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_objects IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD changed_by.
|
METHOD changed_by.
|
||||||
|
@ -385,35 +386,50 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
||||||
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
lo_progress TYPE REF TO zcl_abapgit_progress,
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lt_tadir LIKE it_tadir,
|
lt_tadir LIKE it_tadir,
|
||||||
lt_items TYPE zif_abapgit_definitions=>ty_items_tt.
|
lt_items TYPE zif_abapgit_definitions=>ty_items_tt,
|
||||||
|
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||||
|
lv_text TYPE string.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF it_tadir.
|
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF it_tadir.
|
||||||
|
|
||||||
lt_tadir = it_tadir.
|
lt_tadir = it_tadir.
|
||||||
|
|
||||||
zcl_abapgit_dependencies=>resolve( CHANGING ct_tadir = lt_tadir ).
|
IF is_checks-transport-required = abap_true.
|
||||||
|
zcl_abapgit_default_transport=>get_instance( )->set( is_checks-transport-transport ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
CREATE OBJECT lo_progress
|
TRY.
|
||||||
EXPORTING
|
zcl_abapgit_dependencies=>resolve( CHANGING ct_tadir = lt_tadir ).
|
||||||
iv_total = lines( lt_tadir ).
|
|
||||||
|
|
||||||
lt_items = map_tadir_to_items( lt_tadir ).
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( lt_tadir ).
|
||||||
|
|
||||||
check_objects_locked( iv_language = zif_abapgit_definitions=>gc_english
|
lt_items = map_tadir_to_items( lt_tadir ).
|
||||||
it_items = lt_items ).
|
|
||||||
|
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
check_objects_locked( iv_language = zif_abapgit_definitions=>gc_english
|
||||||
lo_progress->show( iv_current = sy-tabix
|
it_items = lt_items ).
|
||||||
iv_text = |Delete { <ls_tadir>-obj_name }| ) ##NO_TEXT.
|
|
||||||
|
|
||||||
CLEAR ls_item.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
ls_item-obj_type = <ls_tadir>-object.
|
lo_progress->show( iv_current = sy-tabix
|
||||||
ls_item-obj_name = <ls_tadir>-obj_name.
|
iv_text = |Delete { <ls_tadir>-obj_name }| ) ##NO_TEXT.
|
||||||
delete_obj( ls_item ).
|
|
||||||
|
CLEAR ls_item.
|
||||||
|
ls_item-obj_type = <ls_tadir>-object.
|
||||||
|
ls_item-obj_name = <ls_tadir>-obj_name.
|
||||||
|
delete_obj( ls_item ).
|
||||||
|
|
||||||
* make sure to save object deletions
|
* make sure to save object deletions
|
||||||
COMMIT WORK.
|
COMMIT WORK.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
|
zcl_abapgit_default_transport=>get_instance( )->reset( ).
|
||||||
|
lv_text = lx_error->get_text( ).
|
||||||
|
zcx_abapgit_exception=>raise( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
zcl_abapgit_default_transport=>get_instance( )->reset( ).
|
||||||
|
|
||||||
ENDMETHOD. "delete
|
ENDMETHOD. "delete
|
||||||
|
|
||||||
|
@ -446,7 +462,6 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
|
||||||
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
lv_cancel TYPE abap_bool,
|
|
||||||
li_obj TYPE REF TO zif_abapgit_object,
|
li_obj TYPE REF TO zif_abapgit_object,
|
||||||
lt_remote TYPE zif_abapgit_definitions=>ty_files_tt,
|
lt_remote TYPE zif_abapgit_definitions=>ty_files_tt,
|
||||||
lv_package TYPE devclass,
|
lv_package TYPE devclass,
|
||||||
|
@ -718,6 +733,40 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
||||||
ENDMETHOD. "jump
|
ENDMETHOD. "jump
|
||||||
|
|
||||||
|
|
||||||
|
METHOD map_results_to_items.
|
||||||
|
|
||||||
|
DATA: ls_item LIKE LINE OF rt_items.
|
||||||
|
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result.
|
||||||
|
|
||||||
|
LOOP AT it_results ASSIGNING <ls_result>.
|
||||||
|
|
||||||
|
ls_item-devclass = <ls_result>-package.
|
||||||
|
ls_item-obj_type = <ls_result>-obj_type.
|
||||||
|
ls_item-obj_name = <ls_result>-obj_name.
|
||||||
|
INSERT ls_item INTO TABLE rt_items.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD map_tadir_to_items.
|
||||||
|
|
||||||
|
DATA: ls_item LIKE LINE OF rt_items.
|
||||||
|
FIELD-SYMBOLS: <ls_tadir> TYPE zif_abapgit_definitions=>ty_tadir.
|
||||||
|
|
||||||
|
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
||||||
|
|
||||||
|
ls_item-devclass = <ls_tadir>-devclass.
|
||||||
|
ls_item-obj_type = <ls_tadir>-object.
|
||||||
|
ls_item-obj_name = <ls_tadir>-obj_name.
|
||||||
|
INSERT ls_item INTO TABLE rt_items.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD prioritize_deser.
|
METHOD prioritize_deser.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_result> LIKE LINE OF it_results.
|
FIELD-SYMBOLS: <ls_result> LIKE LINE OF it_results.
|
||||||
|
@ -970,38 +1019,4 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD map_tadir_to_items.
|
|
||||||
|
|
||||||
DATA: ls_item LIKE LINE OF rt_items.
|
|
||||||
FIELD-SYMBOLS: <ls_tadir> TYPE zif_abapgit_definitions=>ty_tadir.
|
|
||||||
|
|
||||||
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
|
||||||
|
|
||||||
ls_item-devclass = <ls_tadir>-devclass.
|
|
||||||
ls_item-obj_type = <ls_tadir>-object.
|
|
||||||
ls_item-obj_name = <ls_tadir>-obj_name.
|
|
||||||
INSERT ls_item INTO TABLE rt_items.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD map_results_to_items.
|
|
||||||
|
|
||||||
DATA: ls_item LIKE LINE OF rt_items.
|
|
||||||
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result.
|
|
||||||
|
|
||||||
LOOP AT it_results ASSIGNING <ls_result>.
|
|
||||||
|
|
||||||
ls_item-devclass = <ls_result>-package.
|
|
||||||
ls_item-obj_type = <ls_result>-obj_type.
|
|
||||||
ls_item-obj_name = <ls_result>-obj_name.
|
|
||||||
INSERT ls_item INTO TABLE rt_items.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -84,7 +84,7 @@ CLASS ltcl_dangerous IMPLEMENTATION.
|
||||||
quit = if_aunit_constants=>no ).
|
quit = if_aunit_constants=>no ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
zcl_abapgit_objects=>delete( lt_tadir ).
|
zcl_abapgit_objects=>delete( it_tadir = lt_tadir ).
|
||||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
|
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
lv_msg = |Not deleted properly { <ls_tadir>-object } { <ls_tadir>-obj_name }|.
|
lv_msg = |Not deleted properly { <ls_tadir>-object } { <ls_tadir>-obj_name }|.
|
||||||
|
|
|
@ -12,6 +12,11 @@ CLASS zcl_abapgit_repo DEFINITION
|
||||||
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
METHODS delete_checks
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_delete_checks
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_data TYPE zif_abapgit_persistence=>ty_repo .
|
!is_data TYPE zif_abapgit_persistence=>ty_repo .
|
||||||
|
@ -124,7 +129,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -205,6 +210,16 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD delete_checks.
|
||||||
|
|
||||||
|
DATA: li_package TYPE REF TO zif_abapgit_sap_package.
|
||||||
|
|
||||||
|
li_package = zcl_abapgit_factory=>get_sap_package( get_package( ) ).
|
||||||
|
rs_checks-transport-required = li_package->are_changes_recorded_in_tr_req( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD find_remote_dot_abapgit.
|
METHOD find_remote_dot_abapgit.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_remote> LIKE LINE OF mt_remote.
|
FIELD-SYMBOLS: <ls_remote> LIKE LINE OF mt_remote.
|
||||||
|
|
|
@ -285,7 +285,8 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
|
|
||||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( io_repo->get_package( ) ).
|
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( io_repo->get_package( ) ).
|
||||||
|
|
||||||
zcl_abapgit_objects=>delete( lt_tadir ).
|
zcl_abapgit_objects=>delete( it_tadir = lt_tadir
|
||||||
|
is_checks = is_checks ).
|
||||||
|
|
||||||
delete( io_repo ).
|
delete( io_repo ).
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,10 @@ INTERFACE zif_abapgit_definitions PUBLIC.
|
||||||
warning_package TYPE ty_overwrite_tt,
|
warning_package TYPE ty_overwrite_tt,
|
||||||
requirements TYPE ty_requirements,
|
requirements TYPE ty_requirements,
|
||||||
transport TYPE ty_transport,
|
transport TYPE ty_transport,
|
||||||
END OF ty_deserialize_checks.
|
END OF ty_deserialize_checks,
|
||||||
|
BEGIN OF ty_delete_checks,
|
||||||
|
transport TYPE ty_transport,
|
||||||
|
END OF ty_delete_checks.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_metadata,
|
BEGIN OF ty_metadata,
|
||||||
|
|
|
@ -46,7 +46,8 @@ INTERFACE zif_abapgit_repo_srv
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS purge
|
METHODS purge
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
|
is_checks TYPE zif_abapgit_definitions=>ty_delete_checks
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS switch_repo_type
|
METHODS switch_repo_type
|
||||||
|
|
Loading…
Reference in New Issue
Block a user