SFxx: Fix missing lock checks and unlocking (#6519)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-09-30 08:55:33 -04:00 committed by GitHub
parent f1832259fb
commit 066812ef84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 57 additions and 5 deletions

View File

@ -16,6 +16,7 @@ CLASS zcl_abapgit_object_sfbf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
DATA mv_bf TYPE sfw_bfunction.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
@ -97,6 +98,19 @@ CLASS zcl_abapgit_object_sfbf IMPLEMENTATION.
ENDMETHOD.
METHOD unlock.
CALL FUNCTION 'DEQUEUE_EEUDB'
EXPORTING
relid = 'SF'
name = ms_item-obj_name
_synchron = 'X'
_scope = '1'
mode_eudb = abap_true.
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
DATA: ls_data TYPE sfw_bf.
@ -204,6 +218,8 @@ CLASS zcl_abapgit_object_sfbf IMPLEMENTATION.
lo_bf->save_all( ).
unlock( ).
deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_sfbf ).
@ -261,9 +277,9 @@ CLASS zcl_abapgit_object_sfbf IMPLEMENTATION.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB'
iv_argument = ms_item-obj_name
iv_prefix = 'SF' ).
ENDMETHOD.

View File

@ -16,6 +16,7 @@ CLASS zcl_abapgit_object_sfbs DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
DATA mv_bfset TYPE sfw_bset.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
@ -97,6 +98,19 @@ CLASS zcl_abapgit_object_sfbs IMPLEMENTATION.
ENDMETHOD.
METHOD unlock.
CALL FUNCTION 'DEQUEUE_EEUDB'
EXPORTING
relid = 'SS'
name = ms_item-obj_name
_synchron = 'X'
_scope = '1'
mode_eudb = abap_true.
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
DATA: ls_data TYPE sfw_bs.
@ -187,6 +201,8 @@ CLASS zcl_abapgit_object_sfbs IMPLEMENTATION.
lo_bfs->save_all( ).
unlock( ).
deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_sfbs ).
@ -243,7 +259,9 @@ CLASS zcl_abapgit_object_sfbs IMPLEMENTATION.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB'
iv_argument = ms_item-obj_name
iv_prefix = 'SS' ).
ENDMETHOD.

View File

@ -16,6 +16,7 @@ CLASS zcl_abapgit_object_sfsw DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
DATA mv_switch TYPE sfw_switch_id.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
@ -97,6 +98,19 @@ CLASS zcl_abapgit_object_sfsw IMPLEMENTATION.
ENDMETHOD.
METHOD unlock.
CALL FUNCTION 'DEQUEUE_EEUDB'
EXPORTING
relid = 'SW'
name = ms_item-obj_name
_synchron = 'X'
_scope = '1'
mode_eudb = abap_true.
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
DATA: ls_data TYPE sfw_switch.
@ -190,6 +204,8 @@ CLASS zcl_abapgit_object_sfsw IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'error in CL_SFW_SW->SAVE_ALL' ).
ENDIF.
unlock( ).
deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_sfsw ).
@ -246,7 +262,9 @@ CLASS zcl_abapgit_object_sfsw IMPLEMENTATION.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB'
iv_argument = ms_item-obj_name
iv_prefix = 'SW' ).
ENDMETHOD.