mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 13:03:01 +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.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
METHODS unlock
|
||||||
|
IMPORTING
|
||||||
|
!iv_paramid TYPE memoryid .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,6 +17,17 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
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.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
* looks like "changed by user" is not stored in the database
|
* looks like "changed by user" is not stored in the database
|
||||||
rv_user = c_user_unknown.
|
rv_user = c_user_unknown.
|
||||||
|
@ -54,12 +69,14 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
||||||
SELECT COUNT(*) FROM cross
|
SELECT COUNT(*) FROM cross
|
||||||
WHERE ( type = 'P' OR type = 'Q' ) AND name = lv_paramid.
|
WHERE ( type = 'P' OR type = 'Q' ) AND name = lv_paramid.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
|
unlock( lv_paramid ).
|
||||||
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
SELECT COUNT(*) FROM dd04l BYPASSING BUFFER
|
SELECT COUNT(*) FROM dd04l BYPASSING BUFFER
|
||||||
WHERE memoryid = lv_paramid
|
WHERE memoryid = lv_paramid
|
||||||
AND as4local = 'A'.
|
AND as4local = 'A'.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
|
unlock( lv_paramid ).
|
||||||
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -89,14 +106,11 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
|
||||||
type = 'CR'.
|
type = 'CR'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ELSE.
|
ELSE.
|
||||||
|
unlock( lv_paramid ).
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
unlock( lv_paramid ).
|
||||||
EXPORTING
|
|
||||||
mode = 'FREE'
|
|
||||||
object = lv_paramid
|
|
||||||
object_class = 'PARA'.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user