Refactor adding entries to transport (#6232)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-04-23 10:00:35 +02:00 committed by GitHub
parent fce65fe249
commit 6b6d149cc7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 113 additions and 234 deletions

View File

@ -369,6 +369,29 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_cts_api~insert_transport_object.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = iv_obj_name
object_class = iv_object
devclass = iv_package
master_language = iv_language
mode = iv_mode
global_lock = abap_true
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_cts_api~is_chrec_possible_for_package.
IF iv_package IS NOT INITIAL.
rv_possible = zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ).

View File

@ -16,6 +16,12 @@ INTERFACE zif_abapgit_cts_api
customizing TYPE c LENGTH 4 VALUE 'CUST',
END OF c_transport_category.
CONSTANTS:
BEGIN OF c_transport_mode,
insert TYPE c LENGTH 1 VALUE 'I',
delete TYPE c LENGTH 1 VALUE 'D',
END OF c_transport_mode.
TYPES: BEGIN OF ty_transport,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
@ -85,4 +91,18 @@ INTERFACE zif_abapgit_cts_api
RAISING
zcx_abapgit_exception.
METHODS insert_transport_object
IMPORTING
iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
iv_object TYPE tadir-object
iv_obj_name TYPE csequence
iv_package TYPE devclass
iv_language TYPE sy-langu DEFAULT sy-langu
iv_mode TYPE c DEFAULT 'I'
EXPORTING
ev_object TYPE tadir-object
ev_obj_name TYPE trobj_name
RAISING
zcx_abapgit_exception.
ENDINTERFACE.

View File

@ -249,22 +249,13 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
OTHERS = 1 ##FM_SUBRC_OK.
IF zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ) = abap_true.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = lv_obj_name
object_class = 'SOTR'
mode = 'D'
global_lock = abap_true
devclass = iv_package
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = 'SOTR'
iv_obj_name = lv_obj_name
iv_package = iv_package
iv_mode = zif_abapgit_cts_api=>c_transport_mode-delete ).
ENDIF.
ENDIF.
ENDIF.

View File

@ -114,24 +114,7 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
ENDTRY.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
mode = 'I'
global_lock = abap_true
devclass = iv_package
master_language = mv_language
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
corr_insert( iv_package ).
ENDMETHOD.

View File

@ -79,23 +79,7 @@ CLASS zcl_abapgit_object_cus0 IMPLEMENTATION.
i_description = ls_text
i_tcode = ls_img_activity-header-tcode.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
mode = 'I'
global_lock = abap_true
devclass = iv_package
master_language = mv_language
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
corr_insert( iv_package ).
ENDMETHOD.

View File

@ -97,23 +97,7 @@ CLASS zcl_abapgit_object_cus1 IMPLEMENTATION.
zcx_abapgit_exception=>raise( |error from deserialize CUS1 { mv_customizing_activity } S_CUS_ACTIVITY_SAVE| ).
ENDIF.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
mode = 'I'
global_lock = abap_true
devclass = iv_package
master_language = mv_language
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
corr_insert( iv_package ).
ENDMETHOD.

View File

@ -297,8 +297,7 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
METHOD zif_abapgit_object~delete.
DATA: ls_t100a TYPE t100a,
lv_frozen TYPE abap_bool,
lv_message_id TYPE arbgb,
lv_access_granted TYPE abap_bool.
lv_message_id TYPE arbgb.
* parameter SUPPRESS_DIALOG doesnt exist in all versions of FM RS_DELETE_MESSAGE_ID
* replaced with a copy
@ -329,31 +328,16 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
lv_access_granted = abap_true.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
global_lock = 'X'
object = lv_message_id
object_class = 'MSAG'
mode = 'D'
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 01
permission_failure = 02.
IF sy-subrc <> 0.
IF lv_access_granted = abap_true.
free_access_permission( lv_message_id ).
ENDIF.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = 'MSAG'
iv_obj_name = lv_message_id
iv_package = iv_package
iv_language = mv_language
iv_mode = zif_abapgit_cts_api=>c_transport_mode-delete ).
delete_msgid( lv_message_id ).
IF lv_access_granted = abap_true.
free_access_permission( lv_message_id ).
ENDIF.
free_access_permission( lv_message_id ).
ENDMETHOD.

View File

@ -79,38 +79,25 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'PARA: Parameter is still used' ).
ENDIF.
ENDIF.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
global_lock = abap_true
object = lv_paramid
object_class = 'PARA'
mode = 'D'
suppress_dialog = abap_true
IMPORTING
transport_key = ls_transpkey
EXCEPTIONS
cancelled = 01
permission_failure = 02
unknown_objectclass = 03.
IF sy-subrc = 0.
DELETE FROM tpara WHERE paramid = lv_paramid.
DELETE FROM tparat WHERE paramid = lv_paramid.
IF sy-subrc = 0.
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
EXPORTING
object = lv_paramid
operation = 'DELETE'
type = 'CR'.
ENDIF.
ELSE.
unlock( lv_paramid ).
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
unlock( lv_paramid ).
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = 'PARA'
iv_obj_name = lv_paramid
iv_package = iv_package
iv_language = mv_language
iv_mode = zif_abapgit_cts_api=>c_transport_mode-delete ).
DELETE FROM tpara WHERE paramid = lv_paramid.
DELETE FROM tparat WHERE paramid = lv_paramid.
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
EXPORTING
object = lv_paramid
operation = 'DELETE'
type = 'CR'.
ENDMETHOD.

View File

@ -247,24 +247,7 @@ CLASS zcl_abapgit_object_saxx_super IMPLEMENTATION.
TRY.
lock( ).
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
mode = 'I'
global_lock = abap_true
devclass = iv_package
master_language = mv_language
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ).
ENDIF.
corr_insert( iv_package ).
mi_appl_obj_data->set_data( <lg_data> ).

View File

@ -193,30 +193,20 @@ CLASS zcl_abapgit_object_udmo IMPLEMENTATION.
METHOD corr_insert.
DATA lv_obj_name TYPE tadir-obj_name.
" You are reminded that SUDM - Data Model has no part objects e.g. no LIMU
" Therefore global lock is always appropriate
" You are reminded that the main language (in TADIR) is taken from MV_LANGUAGE.
lv_obj_name = ms_object_type.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = c_transport_object_class
iv_obj_name = lv_obj_name
iv_package = iv_package
iv_language = mv_language ).
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_object_type
object_class = c_transport_object_class
devclass = iv_package
master_language = mv_language
mode = 'I'
global_lock = abap_true
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc = 1.
zcx_abapgit_exception=>raise( 'Cancelled' ).
ELSEIF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
ENDMETHOD.

View File

@ -102,27 +102,10 @@ CLASS zcl_abapgit_object_vcls IMPLEMENTATION.
vclstrudep_tab = lt_vclstrudep
vclmf_tab = lt_vclmf.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
devclass = iv_package
master_language = mv_language
mode = 'INSERT'
global_lock = abap_true
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc = 1.
zcx_abapgit_exception=>raise( 'Cancelled' ).
ELSEIF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
corr_insert( iv_package ).
lv_objectname = ls_vcldir_entry-vclname.
CALL FUNCTION 'OBJ_GENERATE'
EXPORTING
iv_objectname = lv_objectname

View File

@ -170,6 +170,7 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
lv_del_concname = ls_enqueue-objname.
lv_del_concname+16 = ls_enqueue-secname.
CALL FUNCTION 'DD_OBJ_DEL'
EXPORTING
object_name = lv_del_concname
@ -200,6 +201,7 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
ENDIF.
ls_e071-object = ls_enqueue-objtype.
CALL FUNCTION 'RS_DELETE_FROM_WORKING_AREA'
EXPORTING
object = ls_e071-object
@ -208,8 +210,8 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
actualize_working_area = 'X'.
xinx_delete_docu(
iv_objname = mv_name
iv_id = mv_id ).
iv_objname = mv_name
iv_id = mv_id ).
CALL FUNCTION 'RS_TREE_OBJECT_PLACEMENT'
EXPORTING

View File

@ -125,7 +125,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS_GENERIC IMPLEMENTATION.
CLASS zcl_abapgit_objects_generic IMPLEMENTATION.
METHOD after_import.
@ -257,23 +257,11 @@ CLASS ZCL_ABAPGIT_OBJECTS_GENERIC IMPLEMENTATION.
METHOD corr_insert.
* this will also insert into TADIR
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = ms_item-obj_name
object_class = ms_item-obj_type
mode = 'I'
global_lock = abap_true
devclass = iv_package
master_language = mv_language
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = ms_item-obj_type
iv_obj_name = ms_item-obj_name
iv_package = iv_package
iv_language = mv_language ).
ENDMETHOD.

View File

@ -200,7 +200,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS_PROGRAM IMPLEMENTATION.
CLASS zcl_abapgit_objects_program IMPLEMENTATION.
METHOD add_tpool.
@ -471,22 +471,11 @@ CLASS ZCL_ABAPGIT_OBJECTS_PROGRAM IMPLEMENTATION.
lv_progname TYPE reposrc-progname,
lv_title TYPE rglif-title.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = is_progdir-name
object_class = 'ABAP'
devclass = iv_package
master_language = mv_language
mode = 'I'
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = 'ABAP'
iv_obj_name = is_progdir-name
iv_package = iv_package
iv_language = mv_language ).
lv_title = get_program_title( it_tpool ).

View File

@ -94,7 +94,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
CLASS zcl_abapgit_objects_super IMPLEMENTATION.
METHOD constructor.
@ -107,8 +107,8 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
METHOD corr_insert.
DATA: lv_object TYPE string,
lv_object_class TYPE string.
DATA: lv_object TYPE trobj_name,
lv_object_class TYPE tadir-object.
IF ig_object_class IS NOT INITIAL.
lv_object_class = ig_object_class.
@ -122,23 +122,11 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
lv_object = ms_item-obj_name.
ENDIF.
CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING
object = lv_object
object_class = lv_object_class
devclass = iv_package
master_language = mv_language
global_lock = abap_true
mode = 'I'
suppress_dialog = abap_true
EXCEPTIONS
cancelled = 1
permission_failure = 2
unknown_objectclass = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
zcl_abapgit_factory=>get_cts_api( )->insert_transport_object(
iv_object = lv_object_class
iv_obj_name = lv_object
iv_package = iv_package
iv_language = mv_language ).
ENDMETHOD.