CLASS zcl_abapgit_environment DEFINITION PUBLIC FINAL CREATE PRIVATE GLOBAL FRIENDS zcl_abapgit_factory . PUBLIC SECTION. INTERFACES zif_abapgit_environment . PROTECTED SECTION. PRIVATE SECTION. DATA mv_cloud TYPE abap_bool VALUE abap_undefined ##NO_TEXT. DATA mv_is_merged TYPE abap_bool VALUE abap_undefined ##NO_TEXT. DATA mv_client_modifiable TYPE abap_bool VALUE abap_undefined ##NO_TEXT. ENDCLASS. CLASS ZCL_ABAPGIT_ENVIRONMENT IMPLEMENTATION. METHOD zif_abapgit_environment~compare_with_inactive. rv_result = zif_abapgit_environment~is_sap_cloud_platform( ). ENDMETHOD. METHOD zif_abapgit_environment~is_merged. DATA lr_marker TYPE REF TO data ##NEEDED. IF mv_is_merged = abap_undefined. TRY. CREATE DATA lr_marker TYPE REF TO ('LIF_ABAPMERGE_MARKER'). "No exception --> marker found mv_is_merged = abap_true. CATCH cx_sy_create_data_error. mv_is_merged = abap_false. ENDTRY. ENDIF. rv_result = mv_is_merged. ENDMETHOD. METHOD zif_abapgit_environment~is_repo_object_changes_allowed. DATA lv_ind TYPE t000-ccnocliind. IF mv_client_modifiable = abap_undefined. SELECT SINGLE ccnocliind FROM t000 INTO lv_ind WHERE mandt = sy-mandt. IF sy-subrc = 0 AND ( lv_ind = ' ' OR lv_ind = '1' ). "check changes allowed mv_client_modifiable = abap_true. ELSE. mv_client_modifiable = abap_false. ENDIF. ENDIF. rv_result = mv_client_modifiable. ENDMETHOD. METHOD zif_abapgit_environment~is_restart_required. " This method will be used in the context of SAP Cloud Platform: " Pull/Push operations are executed in background jobs. " In case of the respective application server needs to be restarted, " it is required to terminae the background job and reschedule again. rv_result = abap_false. TRY. CALL METHOD ('CL_APJ_SCP_TOOLS')=>('IS_RESTART_REQUIRED') RECEIVING restart_required = rv_result. CATCH cx_sy_dyn_call_illegal_method cx_sy_dyn_call_illegal_class. rv_result = abap_false. ENDTRY. ENDMETHOD. METHOD zif_abapgit_environment~is_sap_cloud_platform. IF mv_cloud = abap_undefined. TRY. CALL METHOD ('CL_COS_UTILITIES')=>('IS_SAP_CLOUD_PLATFORM') RECEIVING rv_is_sap_cloud_platform = mv_cloud. CATCH cx_sy_dyn_call_illegal_method. mv_cloud = abap_false. ENDTRY. ENDIF. rv_result = mv_cloud. ENDMETHOD. ENDCLASS.