diff --git a/src/utils/zcl_abapgit_progress.clas.abap b/src/utils/zcl_abapgit_progress.clas.abap index e48c52249..5b55e9b3d 100644 --- a/src/utils/zcl_abapgit_progress.clas.abap +++ b/src/utils/zcl_abapgit_progress.clas.abap @@ -21,7 +21,10 @@ CLASS zcl_abapgit_progress DEFINITION !iv_current TYPE i RETURNING VALUE(rv_pct) TYPE i . - PRIVATE SECTION. +private section. + + data MV_CV_TIME_NEXT type SY-UZEIT . + data MV_CV_DATUM_NEXT type SY-DATUM . ENDCLASS. @@ -52,14 +55,31 @@ CLASS ZCL_ABAPGIT_PROGRESS IMPLEMENTATION. METHOD show. - DATA: lv_pct TYPE i. + DATA: lv_pct TYPE i. + DATA: lv_time TYPE t. + + CONSTANTS: c_wait_secs TYPE i VALUE 2. lv_pct = calc_pct( iv_current ). - CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' - EXPORTING - percentage = lv_pct - text = iv_text. + GET TIME. + lv_time = sy-uzeit. + IF mv_cv_time_next IS INITIAL AND mv_cv_datum_next IS INITIAL. + mv_cv_time_next = lv_time. + mv_cv_datum_next = sy-datum. + ENDIF. + + "We only do a progress indication if enough time has passed + IF lv_time >= mv_cv_time_next AND sy-datum = mv_cv_datum_next OR + sy-datum > mv_cv_datum_next. + + CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' + EXPORTING + percentage = lv_pct + text = iv_text. + mv_cv_time_next = lv_time + c_wait_secs. + + ENDIF. ENDMETHOD. ENDCLASS. diff --git a/src/utils/zcl_abapgit_progress.clas.xml b/src/utils/zcl_abapgit_progress.clas.xml index e12404479..14b78dec7 100644 --- a/src/utils/zcl_abapgit_progress.clas.xml +++ b/src/utils/zcl_abapgit_progress.clas.xml @@ -14,6 +14,20 @@ X X + + + ZCL_ABAPGIT_PROGRESS + MV_CV_DATUM_NEXT + E + Date or Earliest, Next Progress Display + + + ZCL_ABAPGIT_PROGRESS + MV_CV_TIME_NEXT + E + Time of Earliest, Next Progress Display + +