mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-03 13:26:12 +08:00

CI tests have shown that several object types are not properly recorded in transports. For some objects there was no transport entry when creating the objects, for others when deleting it. This PR add the necessary calls to `corr_insert()`. (some SE80 reorders) Co-authored-by: Lars Hvam <larshp@hotmail.com>
261 lines
6.6 KiB
ABAP
261 lines
6.6 KiB
ABAP
CLASS zcl_abapgit_object_srfc DEFINITION
|
|
PUBLIC
|
|
INHERITING FROM zcl_abapgit_objects_super
|
|
FINAL
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
|
|
INTERFACES zif_abapgit_object .
|
|
|
|
METHODS constructor
|
|
IMPORTING
|
|
!is_item TYPE zif_abapgit_definitions=>ty_item
|
|
!iv_language TYPE spras
|
|
RAISING
|
|
zcx_abapgit_exception .
|
|
PROTECTED SECTION.
|
|
PRIVATE SECTION.
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_abapgit_object_srfc IMPLEMENTATION.
|
|
|
|
|
|
METHOD constructor.
|
|
|
|
DATA li_srfc_persist TYPE REF TO if_wb_object_persist.
|
|
|
|
super->constructor(
|
|
is_item = is_item
|
|
iv_language = iv_language ).
|
|
|
|
TRY.
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
CATCH cx_root.
|
|
zcx_abapgit_exception=>raise( 'Object type SRFC is not supported by this system' ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~changed_by.
|
|
|
|
DATA: li_object_data TYPE REF TO if_wb_object_data_model,
|
|
li_srfc_persist TYPE REF TO if_wb_object_persist,
|
|
lr_srfc_data TYPE REF TO data,
|
|
lx_error TYPE REF TO cx_root.
|
|
|
|
FIELD-SYMBOLS: <lg_srfc_data> TYPE any,
|
|
<lg_any> TYPE any.
|
|
|
|
TRY.
|
|
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
|
ASSIGN lr_srfc_data->* TO <lg_srfc_data>.
|
|
ASSERT sy-subrc = 0.
|
|
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
|
|
li_srfc_persist->get(
|
|
EXPORTING
|
|
p_object_key = |{ ms_item-obj_name }|
|
|
p_version = 'A'
|
|
CHANGING
|
|
p_object_data = li_object_data ).
|
|
|
|
li_object_data->get_data( IMPORTING p_data = <lg_srfc_data> ).
|
|
|
|
ASSIGN COMPONENT 'HEADER-CHANGEDBY' OF STRUCTURE <lg_srfc_data> TO <lg_any>.
|
|
IF sy-subrc = 0 AND <lg_any> IS NOT INITIAL.
|
|
rv_user = <lg_any>.
|
|
ELSE.
|
|
rv_user = c_user_unknown.
|
|
ENDIF.
|
|
|
|
CATCH cx_root INTO lx_error.
|
|
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~delete.
|
|
|
|
DATA: li_srfc_persist TYPE REF TO if_wb_object_persist,
|
|
lx_error TYPE REF TO cx_root.
|
|
|
|
TRY.
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
|
|
li_srfc_persist->delete( p_object_key = |{ ms_item-obj_name }|
|
|
p_version = 'A' ).
|
|
|
|
CATCH cx_root INTO lx_error.
|
|
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~deserialize.
|
|
|
|
DATA: li_srfc_persist TYPE REF TO if_wb_object_persist,
|
|
li_object_data TYPE REF TO if_wb_object_data_model,
|
|
lr_srfc_data TYPE REF TO data,
|
|
lx_error TYPE REF TO cx_root.
|
|
|
|
FIELD-SYMBOLS: <lg_srfc_data> TYPE any,
|
|
<lg_any> TYPE any.
|
|
|
|
TRY.
|
|
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
|
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'
|
|
CHANGING
|
|
cg_data = <lg_srfc_data> ).
|
|
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
CREATE OBJECT li_object_data TYPE ('CL_UCONRFC_OBJECT_DATA').
|
|
|
|
li_object_data->set_data( <lg_srfc_data> ).
|
|
|
|
li_srfc_persist->save( li_object_data ).
|
|
|
|
tadir_insert( iv_package ).
|
|
|
|
corr_insert( iv_package ).
|
|
|
|
CATCH cx_root INTO lx_error.
|
|
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~exists.
|
|
|
|
DATA: li_object_data TYPE REF TO if_wb_object_data_model,
|
|
li_srfc_persist TYPE REF TO if_wb_object_persist.
|
|
|
|
TRY.
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
|
|
li_srfc_persist->get(
|
|
EXPORTING
|
|
p_object_key = |{ ms_item-obj_name }|
|
|
p_version = 'A'
|
|
CHANGING
|
|
p_object_data = li_object_data ).
|
|
|
|
CATCH cx_root.
|
|
rv_bool = abap_false.
|
|
RETURN.
|
|
ENDTRY.
|
|
|
|
rv_bool = abap_true.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~get_comparator.
|
|
RETURN.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~get_deserialize_steps.
|
|
APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~get_metadata.
|
|
rs_metadata = get_metadata( ).
|
|
rs_metadata-delete_tadir = abap_true.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~is_active.
|
|
rv_active = is_active( ).
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~is_locked.
|
|
rv_is_locked = abap_false.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~jump.
|
|
" Covered by ZCL_ABAPGIT_OBJECTS=>JUMP
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~serialize.
|
|
|
|
DATA: li_object_data TYPE REF TO if_wb_object_data_model,
|
|
li_srfc_persist TYPE REF TO if_wb_object_persist,
|
|
lr_srfc_data TYPE REF TO data,
|
|
lx_error TYPE REF TO cx_root.
|
|
|
|
FIELD-SYMBOLS: <lg_srfc_data> TYPE any,
|
|
<lg_any> TYPE any.
|
|
|
|
TRY.
|
|
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
|
ASSIGN lr_srfc_data->* TO <lg_srfc_data>.
|
|
ASSERT sy-subrc = 0.
|
|
|
|
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
|
|
|
li_srfc_persist->get(
|
|
EXPORTING
|
|
p_object_key = |{ ms_item-obj_name }|
|
|
p_version = 'A'
|
|
CHANGING
|
|
p_object_data = li_object_data ).
|
|
|
|
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.
|
|
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
ENDTRY.
|
|
|
|
io_xml->add( iv_name = 'SRFC'
|
|
ig_data = <lg_srfc_data> ).
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|