"! Change transport system API CLASS zcl_abapgit_cts_api DEFINITION PUBLIC FINAL CREATE PRIVATE GLOBAL FRIENDS zcl_abapgit_factory. PUBLIC SECTION. INTERFACES: zif_abapgit_cts_api. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_abapgit_cts_api IMPLEMENTATION. METHOD zif_abapgit_cts_api~get_current_transport_for_obj. DATA: lv_object_lockable TYPE abap_bool, lv_locked TYPE abap_bool, lv_transport_request TYPE trkorr, lv_task TYPE trkorr, lv_tr_object_name TYPE trobj_name. lv_tr_object_name = iv_object_name. CALL FUNCTION 'TR_CHECK_OBJECT_LOCK' EXPORTING wi_pgmid = iv_program_id wi_object = iv_object_type wi_objname = lv_tr_object_name IMPORTING we_lockable_object = lv_object_lockable we_locked = lv_locked we_lock_order = lv_transport_request we_lock_task = lv_task EXCEPTIONS empty_key = 1 no_systemname = 2 no_systemtype = 3 unallowed_lock_order = 4 OTHERS = 5. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. IF lv_locked = abap_false. zcx_abapgit_exception=>raise( |Object { iv_program_id }-{ iv_object_type }-{ iv_object_name } is not locked| ). ENDIF. IF lv_object_lockable = abap_false. zcx_abapgit_exception=>raise( |Object type { iv_program_id }-{ iv_object_type } not lockable| ). ENDIF. IF lv_task IS NOT INITIAL AND lv_task <> lv_transport_request AND iv_resolve_task_to_request = abap_false. rv_transport = lv_task. ELSE. rv_transport = lv_transport_request. ENDIF. ENDMETHOD. METHOD zif_abapgit_cts_api~is_object_locked_in_transport. DATA: ls_object_key TYPE e071, lv_type_check_result TYPE c LENGTH 1, ls_lock_key TYPE tlock_int, lv_lock_flag TYPE c LENGTH 1. ls_object_key-pgmid = iv_program_id. ls_object_key-object = iv_object_type. ls_object_key-obj_name = iv_object_name. CALL FUNCTION 'TR_CHECK_TYPE' EXPORTING wi_e071 = ls_object_key IMPORTING pe_result = lv_type_check_result we_lock_key = ls_lock_key. IF lv_type_check_result <> 'L'. zcx_abapgit_exception=>raise( |Object type { iv_program_id }-{ iv_object_type } not lockable| ). ENDIF. CALL FUNCTION 'TRINT_CHECK_LOCKS' EXPORTING wi_lock_key = ls_lock_key IMPORTING we_lockflag = lv_lock_flag EXCEPTIONS empty_key = 1 OTHERS = 2. IF sy-subrc <> 0. zcx_abapgit_exception=>raise( |TRINT_CHECK_LOCKS: { sy-subrc }| ). ENDIF. rv_locked = boolc( lv_lock_flag <> space ). ENDMETHOD. METHOD zif_abapgit_cts_api~is_object_type_lockable. DATA: ls_object_key TYPE e071, lv_type_check_result TYPE c LENGTH 1. ls_object_key-pgmid = iv_program_id. ls_object_key-object = iv_object_type. ls_object_key-obj_name = '_'. " Dummy value #2071 CALL FUNCTION 'TR_CHECK_TYPE' EXPORTING wi_e071 = ls_object_key IMPORTING pe_result = lv_type_check_result. rv_lockable = boolc( lv_type_check_result = 'L' ). ENDMETHOD. METHOD zif_abapgit_cts_api~is_chrec_possible_for_package. rv_possible = zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ). ENDMETHOD. ENDCLASS.