mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
PARA: Unlock in case of errors (#4526)
If a PARA object cannot be deleted, it remains locked. The change unlocks the object in this case.
This commit is contained in:
parent
5d1aaa4eba
commit
eea7f2527a
|
@ -6,6 +6,10 @@ CLASS zcl_abapgit_object_para DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS unlock
|
||||
IMPORTING
|
||||
!iv_paramid TYPE memoryid .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -13,6 +17,17 @@ ENDCLASS.
|
|||
CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD unlock.
|
||||
|
||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
||||
EXPORTING
|
||||
mode = 'FREE'
|
||||
object = iv_paramid
|
||||
object_class = 'PARA'.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
* looks like "changed by user" is not stored in the database
|
||||
rv_user = c_user_unknown.
|
||||
|
@ -54,12 +69,14 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
|||
SELECT COUNT(*) FROM cross
|
||||
WHERE ( type = 'P' OR type = 'Q' ) AND name = lv_paramid.
|
||||
IF sy-subrc = 0.
|
||||
unlock( lv_paramid ).
|
||||
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
||||
ELSE.
|
||||
SELECT COUNT(*) FROM dd04l BYPASSING BUFFER
|
||||
WHERE memoryid = lv_paramid
|
||||
AND as4local = 'A'.
|
||||
IF sy-subrc = 0.
|
||||
unlock( lv_paramid ).
|
||||
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
@ -89,14 +106,11 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
|||
type = 'CR'.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
unlock( lv_paramid ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
||||
EXPORTING
|
||||
mode = 'FREE'
|
||||
object = lv_paramid
|
||||
object_class = 'PARA'.
|
||||
unlock( lv_paramid ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user