From bb18b71f52b4300834bad6e3fafe8421c0b10392 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Mon, 30 Oct 2023 06:31:37 +0100 Subject: [PATCH] cts api, add new method + cleanup intf (#6591) --- src/cts/zcl_abapgit_cts_api.clas.abap | 171 +++++++++++++++----------- src/cts/zif_abapgit_cts_api.intf.abap | 40 ++++-- 2 files changed, 129 insertions(+), 82 deletions(-) diff --git a/src/cts/zcl_abapgit_cts_api.clas.abap b/src/cts/zcl_abapgit_cts_api.clas.abap index e34c9f86d..a92ffc8d5 100644 --- a/src/cts/zcl_abapgit_cts_api.clas.abap +++ b/src/cts/zcl_abapgit_cts_api.clas.abap @@ -11,7 +11,7 @@ CLASS zcl_abapgit_cts_api DEFINITION PROTECTED SECTION. PRIVATE SECTION. - DATA: mv_confirm_transp_msgs_called TYPE abap_bool. + 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 @@ -82,7 +82,7 @@ ENDCLASS. -CLASS zcl_abapgit_cts_api IMPLEMENTATION. +CLASS ZCL_ABAPGIT_CTS_API IMPLEMENTATION. METHOD get_current_transport_for_obj. @@ -213,6 +213,64 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION. 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. + + METHOD zif_abapgit_cts_api~create_transport_entries. DATA lt_tables TYPE tredt_objects. @@ -401,81 +459,34 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_cts_api~read_description. + METHOD zif_abapgit_cts_api~list_open_requests_by_user. - SELECT SINGLE as4text FROM e07t - INTO rv_description - WHERE trkorr = iv_trkorr - AND langu = sy-langu ##SUBRC_OK. + TYPES: BEGIN OF ty_e070, + trkorr TYPE e070-trkorr, + trfunction TYPE e070-trfunction, + strkorr TYPE e070-strkorr, + END OF ty_e070. + DATA lt_e070 TYPE STANDARD TABLE OF ty_e070 WITH DEFAULT KEY. - ENDMETHOD. +* find all tasks first + SELECT trkorr trfunction strkorr + FROM e070 INTO TABLE lt_e070 + WHERE as4user = sy-uname + AND trstatus = zif_abapgit_cts_api=>c_transport_status-modifiable + AND strkorr <> '' + ORDER BY PRIMARY KEY. - - METHOD zif_abapgit_cts_api~read_user. - - SELECT SINGLE as4user FROM e070 INTO rv_uname - 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. + IF lines( lt_e070 ) > 0. + SELECT trkorr FROM e070 + INTO TABLE rt_trkorr + FOR ALL ENTRIES IN lt_e070 + WHERE trkorr = lt_e070-strkorr + AND trfunction = zif_abapgit_cts_api=>c_transport_type-wb_request. 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. + METHOD zif_abapgit_cts_api~read. DATA ls_request TYPE trwbo_request. @@ -513,6 +524,25 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION. ENDMETHOD. + + METHOD zif_abapgit_cts_api~read_description. + + SELECT SINGLE as4text FROM e07t + INTO rv_description + WHERE trkorr = iv_trkorr + AND langu = sy-langu ##SUBRC_OK. + + ENDMETHOD. + + + METHOD zif_abapgit_cts_api~read_user. + + SELECT SINGLE as4user FROM e070 INTO rv_uname + WHERE trkorr = iv_trkorr ##SUBRC_OK. + + ENDMETHOD. + + METHOD zif_abapgit_cts_api~validate_transport_request. CONSTANTS: @@ -533,5 +563,4 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION. ENDIF. ENDMETHOD. - ENDCLASS. diff --git a/src/cts/zif_abapgit_cts_api.intf.abap b/src/cts/zif_abapgit_cts_api.intf.abap index d1f3f9d9e..6868d04e8 100644 --- a/src/cts/zif_abapgit_cts_api.intf.abap +++ b/src/cts/zif_abapgit_cts_api.intf.abap @@ -22,6 +22,11 @@ INTERFACE zif_abapgit_cts_api delete TYPE c LENGTH 1 VALUE 'D', END OF c_transport_mode. + CONSTANTS: + BEGIN OF c_transport_status, + modifiable TYPE c LENGTH 1 VALUE 'D', + END OF c_transport_status. + TYPES: BEGIN OF ty_transport, obj_type TYPE tadir-object, obj_name TYPE tadir-obj_name, @@ -30,6 +35,19 @@ INTERFACE zif_abapgit_cts_api TYPES ty_transport_list TYPE SORTED TABLE OF ty_transport WITH NON-UNIQUE KEY obj_type obj_name. + TYPES ty_trkorr_tt TYPE STANDARD TABLE OF trkorr WITH DEFAULT KEY. + + TYPES: BEGIN OF ty_transport_key, + object TYPE e071k-object, + objname TYPE e071k-objname, + tabkey TYPE e071k-tabkey, + END OF ty_transport_key. + + TYPES: BEGIN OF ty_transport_data, + trstatus TYPE e070-trstatus, + keys TYPE STANDARD TABLE OF ty_transport_key WITH DEFAULT KEY, + END OF ty_transport_data. + "! Returns the transport request / task the object is currently in "! @parameter is_item | Object "! @parameter rv_transport | Transport request / task @@ -41,6 +59,7 @@ INTERFACE zif_abapgit_cts_api VALUE(rv_transport) TYPE trkorr RAISING zcx_abapgit_exception . + "! Check if change recording is possible for the given package "! @parameter iv_package | Package "! @parameter rv_possible | Change recording is possible @@ -52,6 +71,7 @@ INTERFACE zif_abapgit_cts_api VALUE(rv_possible) TYPE abap_bool RAISING zcx_abapgit_exception . + METHODS get_transports_for_list IMPORTING !it_items TYPE zif_abapgit_definitions=>ty_items_tt @@ -59,6 +79,7 @@ INTERFACE zif_abapgit_cts_api VALUE(rt_transports) TYPE ty_transport_list RAISING zcx_abapgit_exception . + METHODS get_r3tr_obj_for_limu_obj IMPORTING iv_object TYPE tadir-object @@ -109,17 +130,6 @@ INTERFACE zif_abapgit_cts_api RETURNING VALUE(rv_messages_confirmed) TYPE abap_bool . - TYPES: BEGIN OF ty_transport_key, - object TYPE e071k-object, - objname TYPE e071k-objname, - tabkey TYPE e071k-tabkey, - END OF ty_transport_key. - - TYPES: BEGIN OF ty_transport_data, - trstatus TYPE e070-trstatus, - keys TYPE STANDARD TABLE OF ty_transport_key WITH DEFAULT KEY, - END OF ty_transport_data. - METHODS read IMPORTING !iv_trkorr TYPE trkorr @@ -134,4 +144,12 @@ INTERFACE zif_abapgit_cts_api RAISING zcx_abapgit_exception. + METHODS list_open_requests_by_user + IMPORTING + iv_user TYPE sy-uname DEFAULT sy-uname + RETURNING + VALUE(rt_trkorr) TYPE ty_trkorr_tt + RAISING + zcx_abapgit_exception. + ENDINTERFACE.