From 846e0a0e1b0df86f298c1b2734c8fe2947a9dd22 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Thu, 26 Nov 2020 12:33:18 +0100 Subject: [PATCH] ZCL_ABAPGIT_TRANSPORT sort methods (#4251) --- src/zcl_abapgit_transport.clas.abap | 219 ++++++++++++++-------------- 1 file changed, 109 insertions(+), 110 deletions(-) diff --git a/src/zcl_abapgit_transport.clas.abap b/src/zcl_abapgit_transport.clas.abap index 0574ed128..d64a7efa3 100644 --- a/src/zcl_abapgit_transport.clas.abap +++ b/src/zcl_abapgit_transport.clas.abap @@ -63,6 +63,115 @@ ENDCLASS. CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION. + METHOD add_all_objects_to_trans_req. + + DATA: + ls_request TYPE trwbo_request_header, + lt_e071 TYPE tr_objects, + lv_text TYPE string, + lv_answer TYPE c LENGTH 1, + lv_lock_objects TYPE trparflag. + + lv_answer = zcl_abapgit_ui_factory=>get_popups( )->popup_to_confirm( + iv_titlebar = `Lock objects?` + iv_text_question = `Shall all objects be locked in the transport request?` + iv_display_cancel_button = abap_true ). + + CASE lv_answer. + WHEN '1'. + lv_lock_objects = abap_true. + WHEN '2'. + lv_lock_objects = abap_false. + WHEN OTHERS. + RETURN. + ENDCASE. + + lt_e071 = collect_all_objects( iv_key ). + + CALL FUNCTION 'TR_REQUEST_CHOICE' + EXPORTING + it_e071 = lt_e071 + iv_lock_objects = lv_lock_objects + IMPORTING + es_request = ls_request + EXCEPTIONS + invalid_request = 1 + invalid_request_type = 2 + user_not_owner = 3 + no_objects_appended = 4 + enqueue_error = 5 + cancelled_by_user = 6 + recursive_call = 7 + OTHERS = 8. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + lv_text = |Objects successfully added to { ls_request-trkorr }|. + MESSAGE lv_text TYPE 'S'. + + ENDMETHOD. + + + METHOD collect_all_objects. + + DATA: + lt_objects TYPE scts_tadir, + lt_objects_all LIKE lt_objects, + ls_e071 LIKE LINE OF rt_objects, + lo_repo TYPE REF TO zcl_abapgit_repo, + lv_package TYPE zif_abapgit_persistence=>ty_repo-package, + lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt. + + FIELD-SYMBOLS: + TYPE devclass, + TYPE tadir. + + lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lv_package = lo_repo->get_package( ). + lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ). + INSERT lv_package INTO TABLE lt_packages. + + LOOP AT lt_packages ASSIGNING . + + CLEAR: lt_objects. + + CALL FUNCTION 'TRINT_SELECT_OBJECTS' + EXPORTING + iv_devclass = + iv_via_selscreen = abap_false + IMPORTING + et_objects_tadir = lt_objects + EXCEPTIONS + cancelled_by_user = 1 + invalid_input = 2 + OTHERS = 3. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |FM TRINT_SELECT_OBJECTS subrc={ sy-subrc }| ). + ENDIF. + + INSERT LINES OF lt_objects INTO TABLE lt_objects_all. + + ENDLOOP. + + IF lines( lt_objects_all ) = 0. + zcx_abapgit_exception=>raise( |No objects found| ). + ENDIF. + + LOOP AT lt_objects_all ASSIGNING . + + CLEAR: ls_e071. + + MOVE-CORRESPONDING TO ls_e071. + INSERT ls_e071 INTO TABLE rt_objects. + + ENDLOOP. + + ENDMETHOD. + + METHOD find_top_package. * assumption: all objects in transport share a common super package @@ -228,114 +337,4 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION. iv_show_log = iv_show_log_popup ). ENDMETHOD. - - - METHOD add_all_objects_to_trans_req. - - DATA: - ls_request TYPE trwbo_request_header, - lt_e071 TYPE tr_objects, - lv_text TYPE string, - lv_answer TYPE c LENGTH 1, - lv_lock_objects TYPE trparflag. - - lv_answer = zcl_abapgit_ui_factory=>get_popups( )->popup_to_confirm( - iv_titlebar = `Lock objects?` - iv_text_question = `Shall all objects be locked in the transport request?` - iv_display_cancel_button = abap_true ). - - CASE lv_answer. - WHEN '1'. - lv_lock_objects = abap_true. - WHEN '2'. - lv_lock_objects = abap_false. - WHEN OTHERS. - RETURN. - ENDCASE. - - lt_e071 = collect_all_objects( iv_key ). - - CALL FUNCTION 'TR_REQUEST_CHOICE' - EXPORTING - it_e071 = lt_e071 - iv_lock_objects = lv_lock_objects - IMPORTING - es_request = ls_request - EXCEPTIONS - invalid_request = 1 - invalid_request_type = 2 - user_not_owner = 3 - no_objects_appended = 4 - enqueue_error = 5 - cancelled_by_user = 6 - recursive_call = 7 - OTHERS = 8. - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise_t100( ). - ENDIF. - - lv_text = |Objects successfully added to { ls_request-trkorr }|. - MESSAGE lv_text TYPE 'S'. - - ENDMETHOD. - - - METHOD collect_all_objects. - - DATA: - lt_objects TYPE scts_tadir, - lt_objects_all LIKE lt_objects, - ls_e071 LIKE LINE OF rt_objects, - lo_repo TYPE REF TO zcl_abapgit_repo, - lv_package TYPE zif_abapgit_persistence=>ty_repo-package, - lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt. - - FIELD-SYMBOLS: - TYPE devclass, - TYPE tadir. - - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). - lv_package = lo_repo->get_package( ). - lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ). - INSERT lv_package INTO TABLE lt_packages. - - LOOP AT lt_packages ASSIGNING . - - CLEAR: lt_objects. - - CALL FUNCTION 'TRINT_SELECT_OBJECTS' - EXPORTING - iv_devclass = - iv_via_selscreen = abap_false - IMPORTING - et_objects_tadir = lt_objects - EXCEPTIONS - cancelled_by_user = 1 - invalid_input = 2 - OTHERS = 3. - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |FM TRINT_SELECT_OBJECTS subrc={ sy-subrc }| ). - ENDIF. - - INSERT LINES OF lt_objects INTO TABLE lt_objects_all. - - ENDLOOP. - - IF lines( lt_objects_all ) = 0. - zcx_abapgit_exception=>raise( |No objects found| ). - ENDIF. - - LOOP AT lt_objects_all ASSIGNING . - - CLEAR: ls_e071. - - MOVE-CORRESPONDING TO ls_e071. - INSERT ls_e071 INTO TABLE rt_objects. - - ENDLOOP. - - ENDMETHOD. - ENDCLASS.