From 84206638190b67699952d4a61a41ce9b83bc937c Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sat, 30 Sep 2023 02:28:17 -0400 Subject: [PATCH] Refactor: Simplify lock check for workbench objects (#6517) Co-authored-by: Lars Hvam --- src/objects/zcl_abapgit_object_devc.clas.abap | 11 ++--------- src/objects/zcl_abapgit_object_fugr.clas.abap | 11 ++--------- src/objects/zcl_abapgit_object_para.clas.abap | 13 +++---------- src/objects/zcl_abapgit_object_pinf.clas.abap | 10 ++-------- src/objects/zcl_abapgit_object_tran.clas.abap | 12 ++---------- src/objects/zcl_abapgit_objects_super.clas.abap | 14 ++++++++++++-- 6 files changed, 23 insertions(+), 48 deletions(-) diff --git a/src/objects/zcl_abapgit_object_devc.clas.abap b/src/objects/zcl_abapgit_object_devc.clas.abap index 43bf5be5d..6c347f0f3 100644 --- a/src/objects/zcl_abapgit_object_devc.clas.abap +++ b/src/objects/zcl_abapgit_object_devc.clas.abap @@ -727,16 +727,9 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION. METHOD zif_abapgit_object~is_locked. - - DATA: lv_object TYPE eqegraarg. - - lv_object = |DV{ ms_item-obj_name }|. - OVERLAY lv_object WITH ' '. - lv_object = lv_object && '*'. - rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB' - iv_argument = lv_object ). - + iv_argument = ms_item-obj_name + iv_prefix = 'DV' ). ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_fugr.clas.abap b/src/objects/zcl_abapgit_object_fugr.clas.abap index 3a6595433..5cf47222f 100644 --- a/src/objects/zcl_abapgit_object_fugr.clas.abap +++ b/src/objects/zcl_abapgit_object_fugr.clas.abap @@ -759,16 +759,9 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION. METHOD is_function_group_locked. - - DATA: lv_object TYPE eqegraarg. - - lv_object = |FG{ ms_item-obj_name }|. - OVERLAY lv_object WITH ' '. - lv_object = lv_object && '*'. - rv_is_functions_group_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB' - iv_argument = lv_object ). - + iv_argument = ms_item-obj_name + iv_prefix = 'FG' ). ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_para.clas.abap b/src/objects/zcl_abapgit_object_para.clas.abap index 6d93025f6..5038673a3 100644 --- a/src/objects/zcl_abapgit_object_para.clas.abap +++ b/src/objects/zcl_abapgit_object_para.clas.abap @@ -13,7 +13,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_PARA IMPLEMENTATION. +CLASS zcl_abapgit_object_para IMPLEMENTATION. METHOD unlock. @@ -188,16 +188,9 @@ CLASS ZCL_ABAPGIT_OBJECT_PARA IMPLEMENTATION. METHOD zif_abapgit_object~is_locked. - - DATA: lv_argument TYPE seqg3-garg. - - lv_argument = |PA{ ms_item-obj_name }|. - OVERLAY lv_argument WITH ' '. - lv_argument = lv_argument && '*'. - rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB' - iv_argument = lv_argument ). - + iv_argument = ms_item-obj_name + iv_prefix = 'PA' ). ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_pinf.clas.abap b/src/objects/zcl_abapgit_object_pinf.clas.abap index f32d79f3f..eb4f10d85 100644 --- a/src/objects/zcl_abapgit_object_pinf.clas.abap +++ b/src/objects/zcl_abapgit_object_pinf.clas.abap @@ -334,15 +334,9 @@ CLASS zcl_abapgit_object_pinf IMPLEMENTATION. METHOD zif_abapgit_object~is_locked. - - DATA: lv_argument TYPE eqegraarg. - - lv_argument = |PF{ ms_item-obj_name }|. - OVERLAY lv_argument WITH ' *'. - rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB' - iv_argument = lv_argument ). - + iv_argument = ms_item-obj_name + iv_prefix = 'PF' ). ENDMETHOD. diff --git a/src/objects/zcl_abapgit_object_tran.clas.abap b/src/objects/zcl_abapgit_object_tran.clas.abap index 2807ae8d6..73f774b91 100644 --- a/src/objects/zcl_abapgit_object_tran.clas.abap +++ b/src/objects/zcl_abapgit_object_tran.clas.abap @@ -833,17 +833,9 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION. METHOD zif_abapgit_object~is_locked. - - DATA: lv_object TYPE eqegraarg. - - lv_object = |TN{ ms_item-obj_name }|. - OVERLAY lv_object WITH ' '. - lv_object = lv_object && '*'. - rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB' - iv_argument = lv_object ). - - + iv_argument = ms_item-obj_name + iv_prefix = 'TN' ). ENDMETHOD. diff --git a/src/objects/zcl_abapgit_objects_super.clas.abap b/src/objects/zcl_abapgit_objects_super.clas.abap index 14ba5dab7..604184c30 100644 --- a/src/objects/zcl_abapgit_objects_super.clas.abap +++ b/src/objects/zcl_abapgit_objects_super.clas.abap @@ -38,7 +38,8 @@ CLASS zcl_abapgit_objects_super DEFINITION METHODS exists_a_lock_entry_for IMPORTING !iv_lock_object TYPE string - !iv_argument TYPE seqg3-garg OPTIONAL + !iv_argument TYPE csequence OPTIONAL + !iv_prefix TYPE csequence OPTIONAL RETURNING VALUE(rv_exists_a_lock_entry) TYPE abap_bool RAISING @@ -213,11 +214,20 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION. METHOD exists_a_lock_entry_for. DATA: lt_lock_entries TYPE STANDARD TABLE OF seqg3. + DATA: lv_argument TYPE seqg3-garg. + + IF iv_prefix IS INITIAL. + lv_argument = iv_argument. + ELSE. + lv_argument = |{ iv_prefix }{ iv_argument }|. + OVERLAY lv_argument WITH ' '. + lv_argument = lv_argument && '*'. + ENDIF. CALL FUNCTION 'ENQUEUE_READ' EXPORTING guname = '*' - garg = iv_argument + garg = lv_argument TABLES enq = lt_lock_entries EXCEPTIONS