From 92b583bb18880ad7bb5a1d467d0e38966af3af3e Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Mon, 14 Feb 2022 02:25:27 -0500 Subject: [PATCH] Improve progress bar and log for pull (#5311) - Eliminate flashing of progress bar during deserialize - Updated description for deserialize steps - Add steps to log (see below) Co-authored-by: Lars Hvam --- .../zcl_abapgit_objects_activation.clas.abap | 22 +---------------- src/objects/zcl_abapgit_objects.clas.abap | 24 +++++++++++++------ 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/objects/core/zcl_abapgit_objects_activation.clas.abap b/src/objects/core/zcl_abapgit_objects_activation.clas.abap index 1866f0cc3..d80d616c9 100644 --- a/src/objects/core/zcl_abapgit_objects_activation.clas.abap +++ b/src/objects/core/zcl_abapgit_objects_activation.clas.abap @@ -183,26 +183,16 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION. METHOD activate_new. - DATA: li_progress TYPE REF TO zif_abapgit_progress. - IF gt_objects IS INITIAL. RETURN. ENDIF. - li_progress = zcl_abapgit_progress=>get_instance( 100 ). - IF iv_ddic = abap_true. - li_progress->show( iv_current = 98 - iv_text = 'Activating DDIC' ). - activate_ddic( ii_log ). ELSE. - li_progress->show( iv_current = 98 - iv_text = 'Activating non DDIC' ). - activate_old( ii_log ). ENDIF. @@ -376,19 +366,9 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION. lo_cross TYPE REF TO cl_wb_crossreference, ls_item TYPE zif_abapgit_definitions=>ty_item, lv_error TYPE c LENGTH 1, - lv_include TYPE programm, - li_progress TYPE REF TO zif_abapgit_progress. - - - li_progress = zcl_abapgit_progress=>get_instance( lines( gt_classes ) ). + lv_include TYPE programm. LOOP AT gt_classes INTO ls_class. - IF sy-tabix MOD 20 = 0. - li_progress->show( - iv_current = sy-tabix - iv_text = 'Updating where-used lists' ). - ENDIF. - CASE ls_class-object. WHEN 'CLAS'. lv_include = cl_oo_classname_service=>get_classpool_name( ls_class-clsname ). diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index d314f623d..da43b00f9 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -630,10 +630,12 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_main_language( ) it_items = lt_items ). + ii_log->add_success( |Prepare Deserialize| ). + lo_folder_logic = zcl_abapgit_folder_logic=>get_instance( ). LOOP AT lt_results ASSIGNING . li_progress->show( iv_current = sy-tabix - iv_text = |Deserialize { -obj_name }| ). + iv_text = |Prepare Deserialize: { -obj_type } { -obj_name }| ). CLEAR ls_item. ls_item-obj_type = -obj_type. @@ -727,6 +729,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ENDLOOP. + li_progress->off( ). + "run deserialize for all steps and it's objects SORT lt_steps BY order. LOOP AT lt_steps ASSIGNING . @@ -746,8 +750,6 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. zcl_abapgit_default_transport=>get_instance( )->reset( ). - li_progress->off( ). - ENDMETHOD. @@ -769,12 +771,15 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. zcl_abapgit_objects_activation=>clear( ). + ii_log->add_success( |Step { is_step-order } - { is_step-descr }| ). + li_progress = zcl_abapgit_progress=>get_instance( lines( is_step-objects ) ). LOOP AT is_step-objects ASSIGNING . li_progress->show( iv_current = sy-tabix - iv_text = |Deserialize { is_step-descr } - { -item-obj_name }| ). + iv_text = |Step { is_step-order } - { is_step-descr }:| && + | { -item-obj_type } { -item-obj_name }| ). TRY. -obj->deserialize( iv_package = -package @@ -796,6 +801,9 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ENDLOOP. + li_progress->show( iv_current = lines( is_step-objects ) + iv_text = |Step { is_step-order } - Activating Objects| ). + CASE is_step-step_id. WHEN zif_abapgit_object=>gc_step_id-ddic. zcl_abapgit_objects_activation=>activate( @@ -815,6 +823,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ii_log = ii_log ). ENDCASE. + li_progress->off( ). + * Call postprocessing li_exit = zcl_abapgit_exit=>get_instance( ). @@ -857,19 +867,19 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. APPEND INITIAL LINE TO rt_steps ASSIGNING . -step_id = zif_abapgit_object=>gc_step_id-ddic. - -descr = 'Import DDIC objects'. + -descr = 'Deserialize DDIC Objects'. -syntax_check = abap_false. -order = 1. APPEND INITIAL LINE TO rt_steps ASSIGNING . -step_id = zif_abapgit_object=>gc_step_id-abap. - -descr = 'Import objects main'. + -descr = 'Deserialize non-DDIC Objects'. -syntax_check = abap_false. -order = 2. APPEND INITIAL LINE TO rt_steps ASSIGNING . -step_id = zif_abapgit_object=>gc_step_id-late. - -descr = 'Import late objects'. + -descr = 'Post-process Objects'. -syntax_check = abap_true. -order = 3. ENDMETHOD.