From a85db8c8b8691e1981a7ea39c7d71b5d5c4a7556 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 4 Mar 2020 06:34:58 +0100 Subject: [PATCH] SRFC: clear some admin fields (#3225) * SRFC: clear some admin fields * fix lock problem and delete problem --- src/objects/zcl_abapgit_object_srfc.clas.abap | 43 ++++++++++++++++++- src/zcl_abapgit_repo.clas.abap | 1 + 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/objects/zcl_abapgit_object_srfc.clas.abap b/src/objects/zcl_abapgit_object_srfc.clas.abap index 2ec438ae0..fccb3f88a 100644 --- a/src/objects/zcl_abapgit_object_srfc.clas.abap +++ b/src/objects/zcl_abapgit_object_srfc.clas.abap @@ -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: TYPE any. + FIELD-SYMBOLS: TYPE any, + TYPE any. TRY. @@ -55,6 +62,21 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION. ASSIGN lr_srfc_data->* TO . ASSERT sy-subrc = 0. + ASSIGN COMPONENT 'HEADER-CREATEDBY' OF STRUCTURE TO . + IF sy-subrc = 0. + = sy-uname. + ENDIF. + + ASSIGN COMPONENT 'HEADER-CREATEDON' OF STRUCTURE TO . + IF sy-subrc = 0. + = sy-datum. + ENDIF. + + ASSIGN COMPONENT 'HEADER-CREATEDAT' OF STRUCTURE TO . + IF sy-subrc = 0. + = 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: TYPE any. + FIELD-SYMBOLS: TYPE any, + TYPE any. TRY. @@ -178,6 +201,22 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION. li_object_data->get_data( IMPORTING p_data = ). + + ASSIGN COMPONENT 'HEADER-CREATEDBY' OF STRUCTURE TO . + IF sy-subrc = 0. + CLEAR . + ENDIF. + + ASSIGN COMPONENT 'HEADER-CREATEDON' OF STRUCTURE TO . + IF sy-subrc = 0. + CLEAR . + ENDIF. + + ASSIGN COMPONENT 'HEADER-CREATEDAT' OF STRUCTURE TO . + IF sy-subrc = 0. + CLEAR . + ENDIF. + CATCH cx_root INTO lx_error. lv_text = lx_error->get_text( ). zcx_abapgit_exception=>raise( lv_text ). diff --git a/src/zcl_abapgit_repo.clas.abap b/src/zcl_abapgit_repo.clas.abap index c7cd56743..48c90ba15 100644 --- a/src/zcl_abapgit_repo.clas.abap +++ b/src/zcl_abapgit_repo.clas.abap @@ -324,6 +324,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION. IF sy-subrc = 0. ro_dot = zcl_abapgit_dot_abapgit=>deserialize( -data ). set_dot_abapgit( ro_dot ). + COMMIT WORK AND WAIT. " to release lock ENDIF. ENDMETHOD.