mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Fix changing transport type when setting original system (#6870)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
483d852823
commit
52c9bd1847
|
@ -215,7 +215,9 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_cts_api~change_transport_type.
|
||||
|
||||
DATA ls_request_header TYPE trwbo_request_header.
|
||||
DATA:
|
||||
ls_request_header TYPE trwbo_request_header,
|
||||
lt_request_headers TYPE trwbo_request_headers.
|
||||
|
||||
CALL FUNCTION 'ENQUEUE_E_TRKORR'
|
||||
EXPORTING
|
||||
|
@ -228,33 +230,49 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'TRINT_READ_REQUEST_HEADER'
|
||||
CALL FUNCTION 'TR_READ_REQUEST_WITH_TASKS'
|
||||
EXPORTING
|
||||
iv_read_e070 = abap_true
|
||||
iv_read_e070c = abap_true
|
||||
CHANGING
|
||||
cs_request = ls_request_header
|
||||
iv_trkorr = iv_transport_request
|
||||
IMPORTING
|
||||
et_request_headers = lt_request_headers
|
||||
EXCEPTIONS
|
||||
empty_trkorr = 1
|
||||
not_exist_e070 = 2
|
||||
OTHERS = 3.
|
||||
invalid_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'TRINT_CHANGE_TRFUNCTION'
|
||||
EXPORTING
|
||||
iv_new_trfunction = iv_transport_type
|
||||
CHANGING
|
||||
cs_request_header = ls_request_header
|
||||
EXCEPTIONS
|
||||
action_aborted_by_user = 1
|
||||
change_not_allowed = 2
|
||||
db_access_error = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
LOOP AT lt_request_headers INTO ls_request_header WHERE trfunction = iv_transport_type_from.
|
||||
|
||||
CALL FUNCTION 'TRINT_READ_REQUEST_HEADER'
|
||||
EXPORTING
|
||||
iv_read_e070 = abap_true
|
||||
iv_read_e070c = abap_true
|
||||
CHANGING
|
||||
cs_request = ls_request_header
|
||||
EXCEPTIONS
|
||||
empty_trkorr = 1
|
||||
not_exist_e070 = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'TRINT_CHANGE_TRFUNCTION'
|
||||
EXPORTING
|
||||
iv_new_trfunction = iv_transport_type_to
|
||||
CHANGING
|
||||
cs_request_header = ls_request_header
|
||||
EXCEPTIONS
|
||||
action_aborted_by_user = 1
|
||||
change_not_allowed = 2
|
||||
db_access_error = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
CALL FUNCTION 'DEQUEUE_E_TRKORR'
|
||||
EXPORTING
|
||||
|
|
|
@ -156,8 +156,9 @@ INTERFACE zif_abapgit_cts_api
|
|||
|
||||
METHODS change_transport_type
|
||||
IMPORTING
|
||||
!iv_transport_request TYPE trkorr
|
||||
!iv_transport_type TYPE trfunction
|
||||
!iv_transport_request TYPE trkorr
|
||||
!iv_transport_type_from TYPE trfunction
|
||||
!iv_transport_type_to TYPE trfunction
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -1310,15 +1310,28 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
|||
|
||||
METHOD update_original_system.
|
||||
|
||||
DATA lv_srcsystem TYPE tadir-srcsystem.
|
||||
DATA lv_errors TYPE abap_bool.
|
||||
DATA lv_msg TYPE string.
|
||||
DATA:
|
||||
lv_srcsystem TYPE tadir-srcsystem,
|
||||
lv_transport_type_from TYPE trfunction,
|
||||
lv_transport_type_to TYPE trfunction,
|
||||
lv_errors TYPE abap_bool,
|
||||
lv_msg TYPE string.
|
||||
|
||||
FIELD-SYMBOLS <ls_item> LIKE LINE OF it_items.
|
||||
|
||||
lv_srcsystem = io_dot->get_original_system( ).
|
||||
|
||||
IF lv_srcsystem IS INITIAL.
|
||||
RETURN.
|
||||
ELSEIF lv_srcsystem = 'SID'.
|
||||
" Change objects to local system and switch repairs to development requests
|
||||
lv_srcsystem = sy-sysid.
|
||||
lv_transport_type_from = zif_abapgit_cts_api=>c_transport_type-wb_repair.
|
||||
lv_transport_type_to = zif_abapgit_cts_api=>c_transport_type-wb_task.
|
||||
ELSE.
|
||||
" Change objects to external system and switch development requests to repairs
|
||||
lv_transport_type_from = zif_abapgit_cts_api=>c_transport_type-wb_task.
|
||||
lv_transport_type_to = zif_abapgit_cts_api=>c_transport_type-wb_repair.
|
||||
ENDIF.
|
||||
|
||||
ii_log->add_info( |>> Setting original system| ).
|
||||
|
@ -1374,10 +1387,11 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
IF lv_errors IS INITIAL.
|
||||
" Since original system has changed, the type of transport request needs to be switched to "Repair"
|
||||
" Since original system has changed, the type of transport request needs to be adjusted
|
||||
zcl_abapgit_factory=>get_cts_api( )->change_transport_type(
|
||||
iv_transport_request = iv_transport
|
||||
iv_transport_type = zif_abapgit_cts_api=>c_transport_type-wb_repair ).
|
||||
iv_transport_request = iv_transport
|
||||
iv_transport_type_from = lv_transport_type_from
|
||||
iv_transport_type_to = lv_transport_type_to ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -206,7 +206,8 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
|
|||
iv_label = 'Original System'
|
||||
iv_upper_case = abap_true
|
||||
iv_max = 3
|
||||
iv_hint = 'Sets the source system of objects during deserialize in downstream systems' ).
|
||||
iv_hint = 'Sets the source system of objects during deserialize in downstream systems'
|
||||
&& ' (use "SID" to force the source system to sy-sysid)' ).
|
||||
|
||||
IF zcl_abapgit_feature=>is_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ) = abap_true.
|
||||
ro_form->radio(
|
||||
|
|
Loading…
Reference in New Issue
Block a user