use zcl_abapgit_convert for language code conversion (#6382)

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
Lars Hvam 2023-08-13 19:51:10 +02:00 committed by GitHub
parent 80287bb9ee
commit a0c37350a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 90 additions and 21 deletions

View File

@ -94,7 +94,9 @@
"max_one_method_parameter_per_line": true, "max_one_method_parameter_per_line": true,
"unused_ddic": true, "unused_ddic": true,
"prefer_raise_exception_new": true, "prefer_raise_exception_new": true,
"use_class_based_exceptions": true, "use_class_based_exceptions": {
"exclude": ["zcl_abapgit_convert.clas.abap"]
},
"uncaught_exception": true, "uncaught_exception": true,
"intf_referencing_clas": false, "intf_referencing_clas": false,
"method_implemented_twice": true, "method_implemented_twice": true,

View File

@ -95,7 +95,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_JSON_HANDLER IMPLEMENTATION. CLASS zcl_abapgit_json_handler IMPLEMENTATION.
METHOD deserialize. METHOD deserialize.
@ -225,11 +225,7 @@ CLASS ZCL_ABAPGIT_JSON_HANDLER IMPLEMENTATION.
lv_original_language = co_ajson->get_string( '/header/originalLanguage' ). lv_original_language = co_ajson->get_string( '/header/originalLanguage' ).
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' lv_iso_language = zcl_abapgit_convert=>conversion_exit_isola_output( lv_original_language ).
EXPORTING
input = lv_original_language
IMPORTING
output = lv_iso_language.
TRANSLATE lv_iso_language TO LOWER CASE. TRANSLATE lv_iso_language TO LOWER CASE.
co_ajson->set_string( iv_path = '/header/originalLanguage' co_ajson->set_string( iv_path = '/header/originalLanguage'

View File

@ -58,7 +58,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_I18N_PARAMS IMPLEMENTATION. CLASS zcl_abapgit_i18n_params IMPLEMENTATION.
METHOD build_language_filter. METHOD build_language_filter.
@ -98,7 +98,7 @@ CLASS ZCL_ABAPGIT_I18N_PARAMS IMPLEMENTATION.
LOOP AT it_iso_filter INTO lv_laiso. LOOP AT it_iso_filter INTO lv_laiso.
cl_i18n_languages=>sap2_to_sap1( zcl_abapgit_convert=>language_sap2_to_sap1(
EXPORTING EXPORTING
im_lang_sap2 = lv_laiso im_lang_sap2 = lv_laiso
RECEIVING RECEIVING
@ -159,7 +159,7 @@ CLASS ZCL_ABAPGIT_I18N_PARAMS IMPLEMENTATION.
CONTINUE. " Just keep it CONTINUE. " Just keep it
ENDIF. ENDIF.
cl_i18n_languages=>sap1_to_sap2( zcl_abapgit_convert=>language_sap1_to_sap2(
EXPORTING EXPORTING
im_lang_sap1 = <lv_langu> im_lang_sap1 = <lv_langu>
RECEIVING RECEIVING
@ -195,7 +195,7 @@ CLASS ZCL_ABAPGIT_I18N_PARAMS IMPLEMENTATION.
LOOP AT ct_sap_langs INTO lv_langu. LOOP AT ct_sap_langs INTO lv_langu.
lv_index = sy-tabix. lv_index = sy-tabix.
cl_i18n_languages=>sap1_to_sap2( zcl_abapgit_convert=>language_sap1_to_sap2(
EXPORTING EXPORTING
im_lang_sap1 = lv_langu im_lang_sap1 = lv_langu
RECEIVING RECEIVING

View File

@ -175,7 +175,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_LXE_TEXTS IMPLEMENTATION. CLASS zcl_abapgit_lxe_texts IMPLEMENTATION.
METHOD check_langs_versus_installed. METHOD check_langs_versus_installed.
@ -433,8 +433,12 @@ CLASS ZCL_ABAPGIT_LXE_TEXTS IMPLEMENTATION.
DATA lv_lang_iso639 TYPE laiso. DATA lv_lang_iso639 TYPE laiso.
DATA lv_country TYPE land1. DATA lv_country TYPE land1.
DATA lv_class TYPE string.
cl_i18n_languages=>sap2_to_iso639_1( lv_class = 'CL_I18N_LANGUAGES'.
" cannot find a way to do this in Steampunk, so dynamic for now,
CALL METHOD (lv_class)=>sap2_to_iso639_1
EXPORTING EXPORTING
im_lang_sap2 = iv_src im_lang_sap2 = iv_src
IMPORTING IMPORTING
@ -442,7 +446,7 @@ CLASS ZCL_ABAPGIT_LXE_TEXTS IMPLEMENTATION.
ex_country = lv_country ex_country = lv_country
EXCEPTIONS EXCEPTIONS
no_assignment = 1 no_assignment = 1
OTHERS = 2 ). OTHERS = 2.
IF sy-subrc <> 0. IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Failed to convert [{ iv_src }] lang to iso639| ). zcx_abapgit_exception=>raise( |Failed to convert [{ iv_src }] lang to iso639| ).
ENDIF. ENDIF.
@ -519,7 +523,7 @@ CLASS ZCL_ABAPGIT_LXE_TEXTS IMPLEMENTATION.
METHOD langu_to_laiso_safe. METHOD langu_to_laiso_safe.
cl_i18n_languages=>sap1_to_sap2( zcl_abapgit_convert=>language_sap1_to_sap2(
EXPORTING EXPORTING
im_lang_sap1 = iv_langu im_lang_sap1 = iv_langu
RECEIVING RECEIVING

View File

@ -106,13 +106,9 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION.
METHOD build_extra_from_header. METHOD build_extra_from_header.
DATA: lv_tdspras TYPE laiso. DATA lv_tdspras TYPE laiso.
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' lv_tdspras = zcl_abapgit_convert=>conversion_exit_isola_output( is_header-tdspras ).
EXPORTING
input = is_header-tdspras
IMPORTING
output = lv_tdspras.
rv_result = c_objectname_tdlines && '_' && lv_tdspras. rv_result = c_objectname_tdlines && '_' && lv_tdspras.

View File

@ -82,6 +82,23 @@ CLASS zcl_abapgit_convert DEFINITION
EXPORTING EXPORTING
!ev_size TYPE i !ev_size TYPE i
!et_bintab TYPE STANDARD TABLE . !et_bintab TYPE STANDARD TABLE .
CLASS-METHODS language_sap1_to_sap2
IMPORTING
im_lang_sap1 TYPE sy-langu
RETURNING
VALUE(re_lang_sap2) TYPE string
EXCEPTIONS
no_assignment.
CLASS-METHODS language_sap2_to_sap1
IMPORTING
im_lang_sap2 TYPE laiso
RETURNING
VALUE(re_lang_sap1) TYPE sy-langu
EXCEPTIONS
no_assignment.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -348,4 +365,58 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
GET BIT 8 OF iv_x INTO rv_bitbyte+7(1). GET BIT 8 OF iv_x INTO rv_bitbyte+7(1).
ENDMETHOD. ENDMETHOD.
METHOD language_sap1_to_sap2.
DATA lv_class TYPE string.
TRY.
SELECT SINGLE languageisocode FROM ('I_LANGUAGE')
INTO re_lang_sap2
WHERE language = im_lang_sap1.
IF sy-subrc <> 0.
RAISE no_assignment.
ENDIF.
CATCH cx_sy_dynamic_osql_error.
lv_class = 'CL_I18N_LANGUAGES'.
CALL METHOD (lv_class)=>sap1_to_sap2
EXPORTING
im_lang_sap1 = im_lang_sap1
RECEIVING
re_lang_sap2 = re_lang_sap2
EXCEPTIONS
no_assignment = 1
OTHERS = 2.
IF sy-subrc = 1.
RAISE no_assignment.
ENDIF.
ENDTRY.
ENDMETHOD.
METHOD language_sap2_to_sap1.
DATA lv_class TYPE string.
TRY.
SELECT SINGLE language FROM ('I_LANGUAGE')
INTO re_lang_sap1
WHERE languageisocode = im_lang_sap2.
IF sy-subrc <> 0.
RAISE no_assignment.
ENDIF.
CATCH cx_sy_dynamic_osql_error.
lv_class = 'CL_I18N_LANGUAGES'.
CALL METHOD (lv_class)=>sap2_to_sap1
EXPORTING
im_lang_sap2 = im_lang_sap2
RECEIVING
re_lang_sap1 = re_lang_sap1
EXCEPTIONS
no_assignment = 1
OTHERS = 2.
IF sy-subrc = 1.
RAISE no_assignment.
ENDIF.
ENDTRY.
ENDMETHOD.
ENDCLASS. ENDCLASS.