SRFC: clear some admin fields (#3225)

* SRFC: clear some admin fields

* fix lock problem and delete problem
This commit is contained in:
Lars Hvam 2020-03-04 06:34:58 +01:00 committed by GitHub
parent 2ca3a3da91
commit a85db8c8b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 2 deletions

View File

@ -25,6 +25,12 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
lx_error TYPE REF TO cx_root,
lv_text TYPE string.
IF zif_abapgit_object~exists( ) = abap_false.
* the SRFC might already have been deleted with the function module
RETURN.
ENDIF.
TRY.
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
@ -47,7 +53,8 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
lr_srfc_data TYPE REF TO data,
lx_error TYPE REF TO cx_root.
FIELD-SYMBOLS: <lg_srfc_data> TYPE any.
FIELD-SYMBOLS: <lg_srfc_data> TYPE any,
<lg_any> TYPE any.
TRY.
@ -55,6 +62,21 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
ASSIGN lr_srfc_data->* TO <lg_srfc_data>.
ASSERT sy-subrc = 0.
ASSIGN COMPONENT 'HEADER-CREATEDBY' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
<lg_any> = sy-uname.
ENDIF.
ASSIGN COMPONENT 'HEADER-CREATEDON' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
<lg_any> = sy-datum.
ENDIF.
ASSIGN COMPONENT 'HEADER-CREATEDAT' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
<lg_any> = sy-uzeit.
ENDIF.
io_xml->read(
EXPORTING
iv_name = 'SRFC'
@ -159,7 +181,8 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
lx_error TYPE REF TO cx_root,
lv_text TYPE string.
FIELD-SYMBOLS: <lg_srfc_data> TYPE any.
FIELD-SYMBOLS: <lg_srfc_data> TYPE any,
<lg_any> TYPE any.
TRY.
@ -178,6 +201,22 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
li_object_data->get_data( IMPORTING p_data = <lg_srfc_data> ).
ASSIGN COMPONENT 'HEADER-CREATEDBY' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
CLEAR <lg_any>.
ENDIF.
ASSIGN COMPONENT 'HEADER-CREATEDON' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
CLEAR <lg_any>.
ENDIF.
ASSIGN COMPONENT 'HEADER-CREATEDAT' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
IF sy-subrc = 0.
CLEAR <lg_any>.
ENDIF.
CATCH cx_root INTO lx_error.
lv_text = lx_error->get_text( ).
zcx_abapgit_exception=>raise( lv_text ).

View File

@ -324,6 +324,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
IF sy-subrc = 0.
ro_dot = zcl_abapgit_dot_abapgit=>deserialize( <ls_remote>-data ).
set_dot_abapgit( ro_dot ).
COMMIT WORK AND WAIT. " to release lock
ENDIF.
ENDMETHOD.