From af7adb38280a11703666ee567505326968706b40 Mon Sep 17 00:00:00 2001 From: thorsten-wolf-neptune <83953375+thorsten-wolf-neptune@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:26:53 +0200 Subject: [PATCH] added auto confirmation of transport messages (#6317) Co-authored-by: Lars Hvam Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/cts/zcl_abapgit_cts_api.clas.abap | 60 +++++++++++++++++++++++ src/cts/zif_abapgit_cts_api.intf.abap | 4 ++ src/objects/zcl_abapgit_objects.clas.abap | 2 + 3 files changed, 66 insertions(+) diff --git a/src/cts/zcl_abapgit_cts_api.clas.abap b/src/cts/zcl_abapgit_cts_api.clas.abap index a2efd5f2d..23b719bc0 100644 --- a/src/cts/zcl_abapgit_cts_api.clas.abap +++ b/src/cts/zcl_abapgit_cts_api.clas.abap @@ -11,6 +11,8 @@ CLASS zcl_abapgit_cts_api DEFINITION PROTECTED SECTION. PRIVATE SECTION. + DATA: mv_confirm_transp_msgs_called TYPE abap_bool. + "! Returns the transport request / task the object is currently locked in "! @parameter iv_program_id | Program ID "! @parameter iv_object_type | Object type @@ -415,4 +417,62 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION. WHERE trkorr = iv_trkorr ##SUBRC_OK. ENDMETHOD. + + + METHOD zif_abapgit_cts_api~confirm_transport_messages. + + TYPES: BEGIN OF ty_s_message, + id TYPE symsgid, + ty TYPE symsgty, + no TYPE symsgno, + v1 TYPE symsgv, + v2 TYPE symsgv, + v3 TYPE symsgv, + v4 TYPE symsgv, + END OF ty_s_message. + + DATA ls_message TYPE ty_s_message. + + FIELD-SYMBOLS: TYPE STANDARD TABLE. + + IF mv_confirm_transp_msgs_called = abap_true. + RETURN. + ENDIF. + + " remember the call to avoid duplicates in GT_CONFIRMED_MESSAGES + mv_confirm_transp_msgs_called = abap_true. + + + " Auto-confirm certain messages (requires SAP Note 1609940) + PERFORM dummy IN PROGRAM saplstrd IF FOUND. "load function group STRD once into memory + + ASSIGN ('(SAPLSTRD)GT_CONFIRMED_MESSAGES') TO . + + IF sy-subrc <> 0. + RETURN. + ENDIF. + + " Object can only be created in package of namespace + ls_message-id = 'TR'. + ls_message-no = '007'. + INSERT ls_message INTO TABLE . + + " Original system set to "SAP" + ls_message-id = 'TR'. + ls_message-no = '013'. + INSERT ls_message INTO TABLE . + + " Make repairs in foreign namespaces only if they are urgent + ls_message-id = 'TR'. + ls_message-no = '852'. + INSERT ls_message INTO TABLE . + + " Make repairs in foreign namespaces only if they are urgent + ls_message-id = 'TK'. + ls_message-no = '016'. + INSERT ls_message INTO TABLE . + + rv_messages_confirmed = abap_true. + + ENDMETHOD. ENDCLASS. diff --git a/src/cts/zif_abapgit_cts_api.intf.abap b/src/cts/zif_abapgit_cts_api.intf.abap index ccfe11ddb..619e7b38b 100644 --- a/src/cts/zif_abapgit_cts_api.intf.abap +++ b/src/cts/zif_abapgit_cts_api.intf.abap @@ -105,4 +105,8 @@ INTERFACE zif_abapgit_cts_api RAISING zcx_abapgit_exception. + METHODS confirm_transport_messages + RETURNING + VALUE(rv_messages_confirmed) TYPE abap_bool . + ENDINTERFACE. diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 32b51700d..94417b582 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -664,6 +664,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. iv_text = 'Deserialize:' iv_count = lines( lt_items ) )->start( ). + zcl_abapgit_factory=>get_cts_api( )->confirm_transport_messages( ). + check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_main_language( ) it_items = lt_items ).