diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 5c427c9ea..68aa162cc 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -677,7 +677,9 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ii_log->add_info( |>>> Deserializing { lines( lt_items ) } objects| ). ENDIF. - CREATE OBJECT lo_abap_language_vers. + CREATE OBJECT lo_abap_language_vers + EXPORTING + io_dot_abapgit = io_repo->get_dot_abapgit( ). lo_folder_logic = zcl_abapgit_folder_logic=>get_instance( ). LOOP AT lt_results ASSIGNING . diff --git a/src/repo/zcl_abapgit_repo.clas.abap b/src/repo/zcl_abapgit_repo.clas.abap index 1ae54e370..3ec52771a 100644 --- a/src/repo/zcl_abapgit_repo.clas.abap +++ b/src/repo/zcl_abapgit_repo.clas.abap @@ -196,10 +196,12 @@ CLASS zcl_abapgit_repo IMPLEMENTATION. DATA lo_abapgit_abap_language_vers TYPE REF TO zcl_abapgit_abap_language_vers. DATA lv_text TYPE string. - CREATE OBJECT lo_abapgit_abap_language_vers. - IF lo_abapgit_abap_language_vers->is_import_allowed( io_repo = me - iv_package = ms_data-package ) = abap_false. + CREATE OBJECT lo_abapgit_abap_language_vers + EXPORTING + io_dot_abapgit = get_dot_abapgit( ). + + IF lo_abapgit_abap_language_vers->is_import_allowed( ms_data-package ) = abap_false. lv_text = |Repository cannot be imported. | && |ABAP Language Version of linked package is not compatible with repository settings.|. zcx_abapgit_exception=>raise( iv_text = lv_text ). diff --git a/src/utils/zcl_abapgit_abap_language_vers.clas.abap b/src/utils/zcl_abapgit_abap_language_vers.clas.abap index 7d51e3e38..fea15ffa3 100644 --- a/src/utils/zcl_abapgit_abap_language_vers.clas.abap +++ b/src/utils/zcl_abapgit_abap_language_vers.clas.abap @@ -5,8 +5,13 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION PUBLIC SECTION. + CONSTANTS c_any_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version VALUE '*'. CONSTANTS c_feature_flag TYPE string VALUE 'ALAV'. + METHODS constructor + IMPORTING + !io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit. + METHODS get_abap_language_vers_by_objt IMPORTING !iv_object_type TYPE trobjtype @@ -14,9 +19,12 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION RETURNING VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version. + METHODS get_repo_abap_language_version + RETURNING + VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version. + METHODS is_import_allowed IMPORTING - !io_repo TYPE REF TO zif_abapgit_repo !iv_package TYPE devclass RETURNING VALUE(rv_allowed) TYPE abap_bool. @@ -24,6 +32,17 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION PROTECTED SECTION. PRIVATE SECTION. + DATA mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit. + + " Depends on experimental feature flag and repo setting + DATA mv_has_abap_language_vers TYPE abap_bool. + + METHODS get_default_abap_language_vers + IMPORTING + !iv_object_type TYPE trobjtype + RETURNING + VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version. + METHODS get_abap_language_vers_by_devc IMPORTING !iv_package TYPE devclass @@ -31,8 +50,6 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION VALUE(rv_abap_language_version) TYPE string. METHODS get_abap_language_vers_by_repo - IMPORTING - !io_repo TYPE REF TO zif_abapgit_repo RETURNING VALUE(rv_abap_language_version) TYPE string. @@ -43,6 +60,25 @@ ENDCLASS. CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION. + METHOD constructor. + + DATA lo_settings TYPE REF TO zcl_abapgit_settings. + + mo_dot_abapgit = io_dot_abapgit. + + lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ). + + IF lo_settings->is_feature_enabled( c_feature_flag ) = abap_false. + mv_has_abap_language_vers = abap_false. + ELSEIF get_abap_language_vers_by_repo( ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. + mv_has_abap_language_vers = abap_false. + ELSE. + mv_has_abap_language_vers = abap_true. + ENDIF. + + ENDMETHOD. + + METHOD get_abap_language_vers_by_devc. DATA lv_class TYPE string. @@ -57,11 +93,17 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION. RECEIVING ro_instance = lo_abap_language_version_cfg. - CALL METHOD lo_abap_language_version_cfg->('IF_ABAP_LANGUAGE_VERSION_CFG~GET_PACKAGE_DEFAULT_VERSION') - EXPORTING - iv_package_name = iv_package - RECEIVING - rv_default_language_version = lv_abap_lang_version_devc. + " For non-existing packages, GET_PACKAGE_DEFAULT_VERSION returns "standard" + " but we want to return "undefined" in this case to allow any new packages + IF zcl_abapgit_factory=>get_sap_package( iv_package )->exists( ) = abap_true. + CALL METHOD lo_abap_language_version_cfg->('IF_ABAP_LANGUAGE_VERSION_CFG~GET_PACKAGE_DEFAULT_VERSION') + EXPORTING + iv_package_name = iv_package + RECEIVING + rv_default_language_version = lv_abap_lang_version_devc. + ELSE. + lv_abap_lang_version_devc = '-'. + ENDIF. CASE lv_abap_lang_version_devc. WHEN zif_abapgit_aff_types_v1=>co_abap_language_version-standard. @@ -85,6 +127,11 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION. DATA lv_class TYPE string. DATA lo_abap_language_version TYPE REF TO object. + IF mv_has_abap_language_vers = abap_false. + rv_allowed_abap_langu_version = c_any_abap_language_version. + RETURN. ">>> + ENDIF. + lv_class = 'CL_ABAP_LANGUAGE_VERSION'. TRY. @@ -101,32 +148,75 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION. rv_default_version = rv_allowed_abap_langu_version. CATCH cx_root. - rv_allowed_abap_langu_version = zif_abapgit_aff_types_v1=>co_abap_language_version-standard. - "to do: here we need to differentiate between source code object and non-source code objects + rv_allowed_abap_langu_version = get_default_abap_language_vers( iv_object_type ). ENDTRY. ENDMETHOD. METHOD get_abap_language_vers_by_repo. - rv_abap_language_version = io_repo->get_dot_abapgit( )->get_abap_language_version( ). + rv_abap_language_version = mo_dot_abapgit->get_abap_language_version( ). IF rv_abap_language_version IS INITIAL. rv_abap_language_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. ENDIF. ENDMETHOD. + METHOD get_default_abap_language_vers. + + IF zcl_abapgit_factory=>get_environment( )->is_sap_cloud_platform( ) = abap_true. + " On BTP, default to ABAP for Cloud Development + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_cloud-cloud_development. + ELSE. + " Differentiate between source code object and non-source code objects + CASE iv_object_type. + WHEN 'BDEF' OR 'CLAS' OR 'FUGR' OR 'FUGS' OR 'INTF' OR 'PROG' OR 'TYPE'. + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard. + WHEN OTHERS. + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version-standard. + ENDCASE. + ENDIF. + + ENDMETHOD. + + + METHOD get_repo_abap_language_version. + + DATA lv_abap_language_version TYPE string. + + IF mv_has_abap_language_vers = abap_true. + lv_abap_language_version = mo_dot_abapgit->get_abap_language_version( ). + ENDIF. + + CASE lv_abap_language_version. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard. + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user. + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-key_user. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development. + rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development. + WHEN OTHERS. " undefined or feature off + rv_abap_language_version = c_any_abap_language_version. + ENDCASE. + + ENDMETHOD. + + METHOD is_import_allowed. - CASE get_abap_language_vers_by_repo( io_repo ). + DATA lv_package_version TYPE string. + + lv_package_version = get_abap_language_vers_by_devc( iv_package ). + + CASE get_abap_language_vers_by_repo( ). WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. rv_allowed = abap_true. WHEN OTHERS. - IF get_abap_language_vers_by_repo( io_repo ) = get_abap_language_vers_by_devc( iv_package ). + IF get_abap_language_vers_by_repo( ) = lv_package_version. + " allow packages that match repo setting rv_allowed = abap_true. - ELSEIF - get_abap_language_vers_by_devc( iv_package ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined AND - get_abap_language_vers_by_repo( io_repo ) = zif_abapgit_dot_abapgit=>c_abap_language_version-standard. + ELSEIF lv_package_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. + " always allow new packages rv_allowed = abap_true. ELSE. rv_allowed = abap_false. diff --git a/src/utils/zcl_abapgit_abap_language_vers.clas.testclasses.abap b/src/utils/zcl_abapgit_abap_language_vers.clas.testclasses.abap new file mode 100644 index 000000000..32300a950 --- /dev/null +++ b/src/utils/zcl_abapgit_abap_language_vers.clas.testclasses.abap @@ -0,0 +1,416 @@ +* Helper to toggle (cloud) enviroment +CLASS lcl_environment DEFINITION. + + PUBLIC SECTION. + INTERFACES zif_abapgit_environment. + + DATA mv_is_cloud TYPE abap_bool. + + METHODS set_cloud + IMPORTING + iv_is_cloud TYPE abap_bool. + +ENDCLASS. + +CLASS lcl_environment IMPLEMENTATION. + + METHOD set_cloud. + mv_is_cloud = iv_is_cloud. + ENDMETHOD. + + METHOD zif_abapgit_environment~is_sap_cloud_platform. + rv_result = mv_is_cloud. + ENDMETHOD. + + METHOD zif_abapgit_environment~compare_with_inactive. + ENDMETHOD. + METHOD zif_abapgit_environment~get_basis_release. + ENDMETHOD. + METHOD zif_abapgit_environment~get_system_language_filter. + ENDMETHOD. + METHOD zif_abapgit_environment~is_merged. + ENDMETHOD. + METHOD zif_abapgit_environment~is_repo_object_changes_allowed. + ENDMETHOD. + METHOD zif_abapgit_environment~is_restart_required. + ENDMETHOD. + METHOD zif_abapgit_environment~is_sap_object_allowed. + ENDMETHOD. + METHOD zif_abapgit_environment~is_variant_maintenance. + ENDMETHOD. + +ENDCLASS. + +* Helper to toggle experimental features +CLASS lcl_persist_settings DEFINITION. + + PUBLIC SECTION. + INTERFACES zif_abapgit_persist_settings. + + DATA mo_settings TYPE REF TO zcl_abapgit_settings. + + METHODS constructor. + +ENDCLASS. + +CLASS lcl_persist_settings IMPLEMENTATION. + + METHOD constructor. + CREATE OBJECT mo_settings. + ENDMETHOD. + + METHOD zif_abapgit_persist_settings~modify. + ENDMETHOD. + + METHOD zif_abapgit_persist_settings~read. + ro_settings = mo_settings. + ENDMETHOD. + +ENDCLASS. + +* Test cases +CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS + DURATION SHORT FINAL. + + PRIVATE SECTION. + " Cloud package hardcoded in cl_abap_language_version + CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'. + + DATA: + mt_versions TYPE string_table, + mo_environment TYPE REF TO lcl_environment, + mi_persistency TYPE REF TO zif_abapgit_persist_settings, + mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit, + mo_cut TYPE REF TO zcl_abapgit_abap_language_vers. + + METHODS: + setup, + init + IMPORTING + iv_abap_language_version TYPE string, + set_environment + IMPORTING + iv_is_cloud TYPE abap_bool, + set_features + IMPORTING + iv_features TYPE string, + repo_setting_test + IMPORTING + iv_version TYPE string + iv_exp TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version, + object_type_test + IMPORTING + iv_version TYPE string + iv_standard TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version + iv_standard_src TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version + iv_cloud TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version + iv_cloud_src TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version, + is_import_allowed_test + IMPORTING + iv_version TYPE string + iv_standard TYPE abap_bool + iv_cloud TYPE abap_bool + iv_new TYPE abap_bool. + + METHODS: + repo_setting_feature_off FOR TESTING, + repo_setting_feature_on FOR TESTING, + object_type_feature_off FOR TESTING, + object_type_feature_on FOR TESTING, + is_import_allowed FOR TESTING. + +ENDCLASS. + +CLASS ltcl_abap_language_version IMPLEMENTATION. + + METHOD setup. + CREATE OBJECT mo_environment. + zcl_abapgit_injector=>set_environment( mo_environment ). + + CREATE OBJECT mi_persistency TYPE lcl_persist_settings. + zcl_abapgit_persist_injector=>set_settings( mi_persistency ). + + APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-undefined TO mt_versions. + APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-standard TO mt_versions. + APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-key_user TO mt_versions. + APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development TO mt_versions. + ENDMETHOD. + + METHOD init. + mo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ). + mo_dot_abapgit->set_abap_language_version( iv_abap_language_version ). + + CREATE OBJECT mo_cut + EXPORTING + io_dot_abapgit = mo_dot_abapgit. + ENDMETHOD. + + METHOD set_environment. + mo_environment->set_cloud( iv_is_cloud ). + ENDMETHOD. + + METHOD set_features. + mi_persistency->read( )->set_experimental_features( iv_features ). + ENDMETHOD. + + METHOD repo_setting_test. + + init( iv_version ). + + " Assume on-prem (no cloud) + set_environment( abap_false ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_repo_abap_language_version( ) + exp = iv_exp + msg = |ABAP Language Version: { iv_version }, On-prem| ). + + " Assume cloud platform + set_environment( abap_true ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_repo_abap_language_version( ) + exp = iv_exp + msg = |ABAP Language Version: { iv_version }, Cloud| ). + + + ENDMETHOD. + + METHOD repo_setting_feature_off. + + DATA lv_version TYPE string. + + " If experimental feature is off, repo setting is not taken into consideration + set_features( '' ). + + LOOP AT mt_versions INTO lv_version. + + repo_setting_test( + iv_version = lv_version + iv_exp = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ). + + ENDLOOP. + + ENDMETHOD. + + METHOD repo_setting_feature_on. + + DATA lv_version TYPE string. + + " If experimental feature is on, repo setting is returned + set_features( zcl_abapgit_abap_language_vers=>c_feature_flag ). + + LOOP AT mt_versions INTO lv_version. + + CASE lv_version. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. + + repo_setting_test( + iv_version = lv_version + iv_exp = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard. + + repo_setting_test( + iv_version = lv_version + iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user. + + repo_setting_test( + iv_version = lv_version + iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-key_user ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development. + + repo_setting_test( + iv_version = lv_version + iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development ). + + ENDCASE. + + ENDLOOP. + + ENDMETHOD. + + METHOD object_type_test. + + init( iv_version ). + + " Assume on-prem (no cloud) + set_environment( abap_false ). + + " source code + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_abap_language_vers_by_objt( + iv_object_type = 'INTF' + iv_package = '$TMP' ) + exp = iv_standard_src + msg = |ABAP Language Version: { iv_version }, On-prem| ). + + " non-source code + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_abap_language_vers_by_objt( + iv_object_type = 'TABL' + iv_package = '$TMP' ) + exp = iv_standard + msg = |ABAP Language Version: { iv_version }, On-prem| ). + + " Assume cloud platform + set_environment( abap_true ). + + " source code + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_abap_language_vers_by_objt( + iv_object_type = 'INTF' + iv_package = c_cloud_package ) + exp = iv_cloud_src + msg = |ABAP Language Version: { iv_version }, Cloud| ). + + " non-source code + cl_abap_unit_assert=>assert_equals( + act = mo_cut->get_abap_language_vers_by_objt( + iv_object_type = 'TABL' + iv_package = c_cloud_package ) + exp = iv_cloud + msg = |ABAP Language Version: { iv_version }, Cloud| ). + + ENDMETHOD. + + METHOD object_type_feature_off. + + DATA lv_version TYPE string. + + " If experimental feature is off, repo setting is ignored + set_features( '' ). + + LOOP AT mt_versions INTO lv_version. + + object_type_test( + iv_version = lv_version + iv_standard = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_standard_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_cloud = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_cloud_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ). + + ENDLOOP. + + ENDMETHOD. + + METHOD object_type_feature_on. + + DATA lv_version TYPE string. + + " If experimental feature is on, repo setting is ignored but package setting is returned + set_features( zcl_abapgit_abap_language_vers=>c_feature_flag ). + + LOOP AT mt_versions INTO lv_version. + + CASE lv_version. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. + + object_type_test( + iv_version = lv_version + iv_standard = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_standard_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_cloud = zcl_abapgit_abap_language_vers=>c_any_abap_language_version + iv_cloud_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ). + + WHEN OTHERS. + + object_type_test( + iv_version = lv_version + iv_standard = zif_abapgit_aff_types_v1=>co_abap_language_version-standard + iv_standard_src = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard + iv_cloud = zif_abapgit_aff_types_v1=>co_abap_language_version-cloud_development + iv_cloud_src = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development ). + + ENDCASE. + + ENDLOOP. + + ENDMETHOD. + + METHOD is_import_allowed_test. + + init( iv_version ). + + " Assume on-prem (no cloud) + set_environment( abap_false ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package + exp = iv_standard ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( c_cloud_package ) " existing cloud package + exp = iv_cloud ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( 'Z_FOO_BAR' ) " non-existing package + exp = iv_new ). + + " Assume cloud platform + set_environment( abap_true ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package + exp = iv_standard ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( c_cloud_package ) " existing cloud package + exp = iv_cloud ). + + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( 'Z_FOO_BAR' ) " non-existing package + exp = iv_new ). + + ENDMETHOD. + + + METHOD is_import_allowed. + + DATA lv_version TYPE string. + + LOOP AT mt_versions INTO lv_version. + + CASE lv_version. + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined. + + is_import_allowed_test( + iv_version = lv_version + iv_standard = abap_true + iv_cloud = abap_true + iv_new = abap_true ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard. + + is_import_allowed_test( + iv_version = lv_version + iv_standard = abap_true + iv_cloud = abap_false + iv_new = abap_true ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user. + + is_import_allowed_test( + iv_version = lv_version + iv_standard = abap_false + iv_cloud = abap_false + iv_new = abap_true ). + + WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development. + + is_import_allowed_test( + iv_version = lv_version + iv_standard = abap_false + iv_cloud = abap_true + iv_new = abap_true ). + + ENDCASE. + + ENDLOOP. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/utils/zcl_abapgit_abap_language_vers.clas.xml b/src/utils/zcl_abapgit_abap_language_vers.clas.xml index 10c1d6b42..4fad1069c 100644 --- a/src/utils/zcl_abapgit_abap_language_vers.clas.xml +++ b/src/utils/zcl_abapgit_abap_language_vers.clas.xml @@ -10,6 +10,7 @@ X X X + X diff --git a/test/abap_transpile.json b/test/abap_transpile.json index 75bb5c4d3..c323ce5e0 100644 --- a/test/abap_transpile.json +++ b/test/abap_transpile.json @@ -188,6 +188,12 @@ {"object": "ZCL_ABAPGIT_OBJECTS", "class": "ltcl_check_objects_locked", "method": "throw_excp_if_object_is_locked", "note": "no such table: seometarel"}, {"object": "ZCL_ABAPGIT_OBJECTS", "class": "ltcl_check_objects_locked", "method": "no_excp_if_obj_is_not_locked", "note": "no such table: seometarel"}, + {"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "repo_setting_feature_off", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"}, + {"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "repo_setting_feature_on", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"}, + {"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "object_type_feature_off", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"}, + {"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "object_type_feature_on", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"}, + {"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "is_import_allowed", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"}, + {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "raise_error_if_package_exists", "note": "Void type: SCOMPKDTLN"}, {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_given_in_popup", "note": "Void type: SCOMPKDTLN"}, {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_not_created_when_canc", "note": "Void type: SCOMPKDTLN"},