diff --git a/src/background/zcl_abapgit_background.clas.abap b/src/background/zcl_abapgit_background.clas.abap index f9be99f64..da081f6c9 100644 --- a/src/background/zcl_abapgit_background.clas.abap +++ b/src/background/zcl_abapgit_background.clas.abap @@ -14,15 +14,23 @@ CLASS zcl_abapgit_background DEFINITION CLASS-METHODS run RAISING zcx_abapgit_exception . + CLASS-METHODS list_methods RETURNING VALUE(rt_methods) TYPE ty_methods. + + CLASS-METHODS enqueue + RAISING + zcx_abapgit_exception. + + CLASS-METHODS dequeue. PROTECTED SECTION. PRIVATE SECTION. + CONSTANTS gc_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'. ENDCLASS. -CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION. +CLASS zcl_abapgit_background IMPLEMENTATION. METHOD list_methods. @@ -69,8 +77,6 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION. METHOD run. - CONSTANTS: lc_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'. - DATA: lo_per TYPE REF TO zcl_abapgit_persist_background, lo_repo TYPE REF TO zcl_abapgit_repo_online, lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys, @@ -81,20 +87,12 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF lt_list. - - CALL FUNCTION 'ENQUEUE_EZABAPGIT' - EXPORTING - mode_zabapgit = 'E' - type = lc_enq_type - _scope = '3' - EXCEPTIONS - foreign_lock = 1 - system_failure = 2 - OTHERS = 3. - IF sy-subrc <> 0. - WRITE: / 'Another intance of the program is already running'. - RETURN. - ENDIF. + TRY. + enqueue( ). + CATCH zcx_abapgit_exception. + WRITE: / 'Another intance of the program is already running'. + RETURN. + ENDTRY. CREATE OBJECT lo_per. lt_list = lo_per->list( ). @@ -135,9 +133,30 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION. WRITE: / 'Nothing configured'. ENDIF. - CALL FUNCTION 'DEQUEUE_EZABAPGIT' - EXPORTING - type = lc_enq_type. + dequeue( ). ENDMETHOD. + + METHOD enqueue. + CALL FUNCTION 'ENQUEUE_EZABAPGIT' + EXPORTING + mode_zabapgit = 'E' + type = gc_enq_type + _scope = '3' + EXCEPTIONS + foreign_lock = 1 + system_failure = 2 + OTHERS = 3. + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + ENDMETHOD. + + METHOD dequeue. + CALL FUNCTION 'DEQUEUE_EZABAPGIT' + EXPORTING + type = gc_enq_type. + ENDMETHOD. + ENDCLASS.