From 276ad4e808e42b3c41e9da665e140b2c558f1b6f Mon Sep 17 00:00:00 2001 From: Gregor Wolf Date: Mon, 30 May 2022 12:18:32 +0200 Subject: [PATCH] Exclude technical language from intf, clas, prog, dtel, doma and tabl (#5598) * exclude technical language from DOMA * exclude technical language from DTEL * exclude technical language from TABL * exclude technical language from CLAS * exclude technical language from PROG * exclude technical language from INTF * fix abaplint issue: Place pragma at end of statem. Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- .../texts/zcl_abapgit_sotr_handler.clas.abap | 6 +++++- src/objects/zcl_abapgit_object_clas.clas.abap | 16 ++++++++++---- src/objects/zcl_abapgit_object_doma.clas.abap | 18 +++++++++------- src/objects/zcl_abapgit_object_dtel.clas.abap | 13 +++++++----- src/objects/zcl_abapgit_object_intf.clas.abap | 21 ++++++++++++------- src/objects/zcl_abapgit_object_prog.clas.abap | 13 +++++++----- src/objects/zcl_abapgit_object_tabl.clas.abap | 13 +++++++----- 7 files changed, 65 insertions(+), 35 deletions(-) diff --git a/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap b/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap index d829dfbf0..bc68e9ce9 100644 --- a/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap +++ b/src/objects/texts/zcl_abapgit_sotr_handler.clas.abap @@ -289,7 +289,8 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION. FIELD-SYMBOLS LIKE LINE OF et_sotr_use. - DATA lv_sotr TYPE zif_abapgit_definitions=>ty_sotr. + DATA: lv_sotr TYPE zif_abapgit_definitions=>ty_sotr, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. " SOTR usage (see LSOTR_SYSTEM_SETTINGSF01, FORM GET_OBJECT_TABLE) " LIMU: CPUB, WAPP, WDYC, WDYD, WDYV @@ -308,6 +309,9 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION. DELETE lv_sotr-entries WHERE langu <> iv_language. CHECK lv_sotr-entries IS NOT INITIAL. ENDIF. + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). + DELETE lv_sotr-entries WHERE NOT langu IN lt_language_filter. + CHECK lv_sotr-entries IS NOT INITIAL. INSERT lv_sotr INTO TABLE et_sotr. ENDLOOP. diff --git a/src/objects/zcl_abapgit_object_clas.clas.abap b/src/objects/zcl_abapgit_object_clas.clas.abap index 4f6d45389..2557043a3 100644 --- a/src/objects/zcl_abapgit_object_clas.clas.abap +++ b/src/objects/zcl_abapgit_object_clas.clas.abap @@ -369,8 +369,9 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. METHOD serialize_descr. - DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, - lv_language TYPE spras. + DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, + lv_language TYPE spras, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. IF ii_xml->i18n_params( )-main_language_only = abap_true. lv_language = mv_language. @@ -383,6 +384,9 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. IF lines( lt_descriptions ) = 0. RETURN. ENDIF. + " Remove technical languages + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). + DELETE lt_descriptions WHERE NOT langu IN lt_language_filter. ii_xml->add( iv_name = 'DESCRIPTIONS' ig_data = lt_descriptions ). @@ -504,7 +508,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. DATA: ls_vseoclass TYPE vseoclass, ls_clskey TYPE seoclskey, - lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus. + lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. ls_clskey-clsname = ms_item-obj_name. @@ -543,11 +548,13 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. " Table d010tinf stores info. on languages in which program is maintained " Select all active translations of program texts " Skip main language - it was already serialized + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). SELECT DISTINCT language INTO TABLE lt_langu_additional FROM d010tinf WHERE r3state = 'A' AND prog = mv_classpool_name + AND language IN lt_language_filter AND language <> mv_language. ii_xml->add( iv_name = 'VSEOCLASS' @@ -566,7 +573,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. FROM dokhl WHERE id = 'CL' AND object = ls_clskey-clsname - AND langu <> mv_language. + AND langu IN lt_language_filter + AND langu <> mv_language. serialize_docu( ii_xml = ii_xml iv_clsname = ls_clskey-clsname diff --git a/src/objects/zcl_abapgit_object_doma.clas.abap b/src/objects/zcl_abapgit_object_doma.clas.abap index 0a5331408..eb9516f54 100644 --- a/src/objects/zcl_abapgit_object_doma.clas.abap +++ b/src/objects/zcl_abapgit_object_doma.clas.abap @@ -129,13 +129,14 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION. METHOD serialize_texts. - DATA: lv_name TYPE ddobjname, - lv_index TYPE i, - ls_dd01v TYPE dd01v, - lt_dd07v TYPE TABLE OF dd07v, - lt_i18n_langs TYPE TABLE OF langu, - lt_dd01_texts TYPE ty_dd01_texts, - lt_dd07_texts TYPE ty_dd07_texts. + DATA: lv_name TYPE ddobjname, + lv_index TYPE i, + ls_dd01v TYPE dd01v, + lt_dd07v TYPE TABLE OF dd07v, + lt_i18n_langs TYPE TABLE OF langu, + lt_dd01_texts TYPE ty_dd01_texts, + lt_dd07_texts TYPE ty_dd07_texts, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. FIELD-SYMBOLS: LIKE LINE OF lt_i18n_langs, LIKE LINE OF lt_dd07v, @@ -150,14 +151,17 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION. lv_name = ms_item-obj_name. " Collect additional languages, skip main lang - it was serialized already + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs FROM dd01v WHERE domname = lv_name + AND ddlanguage IN lt_language_filter AND ddlanguage <> mv_language. "#EC CI_SUBRC SELECT DISTINCT ddlanguage AS langu APPENDING TABLE lt_i18n_langs FROM dd07v WHERE domname = lv_name + AND ddlanguage IN lt_language_filter AND ddlanguage <> mv_language. "#EC CI_SUBRC SORT lt_i18n_langs. diff --git a/src/objects/zcl_abapgit_object_dtel.clas.abap b/src/objects/zcl_abapgit_object_dtel.clas.abap index a739f0bce..de473e1ee 100644 --- a/src/objects/zcl_abapgit_object_dtel.clas.abap +++ b/src/objects/zcl_abapgit_object_dtel.clas.abap @@ -91,11 +91,12 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION. METHOD serialize_texts. - DATA: lv_name TYPE ddobjname, - lv_index TYPE i, - ls_dd04v TYPE dd04v, - lt_dd04_texts TYPE ty_dd04_texts, - lt_i18n_langs TYPE TABLE OF langu. + DATA: lv_name TYPE ddobjname, + lv_index TYPE i, + ls_dd04v TYPE dd04v, + lt_dd04_texts TYPE ty_dd04_texts, + lt_i18n_langs TYPE TABLE OF langu, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. FIELD-SYMBOLS: LIKE LINE OF lt_i18n_langs, LIKE LINE OF lt_dd04_texts. @@ -107,9 +108,11 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION. lv_name = ms_item-obj_name. " Collect additional languages, skip main lang - it was serialized already + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs FROM dd04v WHERE rollname = lv_name + AND ddlanguage IN lt_language_filter AND ddlanguage <> mv_language. "#EC CI_SUBRC LOOP AT lt_i18n_langs ASSIGNING . diff --git a/src/objects/zcl_abapgit_object_intf.clas.abap b/src/objects/zcl_abapgit_object_intf.clas.abap index 6d1b04caf..5c65611f6 100644 --- a/src/objects/zcl_abapgit_object_intf.clas.abap +++ b/src/objects/zcl_abapgit_object_intf.clas.abap @@ -56,7 +56,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. +CLASS zcl_abapgit_object_intf IMPLEMENTATION. METHOD constructor. @@ -143,8 +143,8 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. METHOD deserialize_pre_ddic. - DATA: ls_vseointerf TYPE vseointerf, - ls_clskey TYPE seoclskey. + DATA: ls_vseointerf TYPE vseointerf, + ls_clskey TYPE seoclskey. ls_clskey-clsname = ms_item-obj_name. @@ -197,8 +197,9 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. METHOD serialize_descr. - DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, - lv_language TYPE spras. + DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, + lv_language TYPE spras, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. IF ii_xml->i18n_params( )-main_language_only = abap_true. lv_language = mv_language. @@ -208,6 +209,10 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. iv_object_name = iv_clsname iv_language = lv_language ). + " Remove technical languages + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). + DELETE lt_descriptions WHERE NOT langu IN lt_language_filter. + IF lines( lt_descriptions ) = 0. RETURN. ENDIF. @@ -268,9 +273,9 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. METHOD serialize_xml. DATA: - ls_vseointerf TYPE vseointerf, - ls_clskey TYPE seoclskey, - lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus. + ls_vseointerf TYPE vseointerf, + ls_clskey TYPE seoclskey, + lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus. ls_clskey-clsname = ms_item-obj_name. diff --git a/src/objects/zcl_abapgit_object_prog.clas.abap b/src/objects/zcl_abapgit_object_prog.clas.abap index c733f08c0..0d58a9cce 100644 --- a/src/objects/zcl_abapgit_object_prog.clas.abap +++ b/src/objects/zcl_abapgit_object_prog.clas.abap @@ -112,8 +112,9 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION. METHOD serialize_texts. - DATA: lt_tpool_i18n TYPE ty_tpools_i18n, - lt_tpool TYPE textpool_table. + DATA: lt_tpool_i18n TYPE ty_tpools_i18n, + lt_tpool TYPE textpool_table, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. FIELD-SYMBOLS LIKE LINE OF lt_tpool_i18n. @@ -124,12 +125,14 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION. " Table d010tinf stores info. on languages in which program is maintained " Select all active translations of program texts " Skip main language - it was already serialized + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). SELECT DISTINCT language INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n FROM d010tinf WHERE r3state = 'A' AND prog = ms_item-obj_name - AND language <> mv_language ##TOO_MANY_ITAB_FIELDS. + AND language <> mv_language + AND language IN lt_language_filter ##TOO_MANY_ITAB_FIELDS. SORT lt_tpool_i18n BY language ASCENDING. LOOP AT lt_tpool_i18n ASSIGNING . @@ -160,8 +163,8 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION. METHOD zif_abapgit_object~delete. DATA: - lv_program LIKE sy-repid, - lv_obj_name TYPE e071-obj_name. + lv_program LIKE sy-repid, + lv_obj_name TYPE e071-obj_name. lv_program = ms_item-obj_name. diff --git a/src/objects/zcl_abapgit_object_tabl.clas.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap index 1ec9ac869..15e50407d 100644 --- a/src/objects/zcl_abapgit_object_tabl.clas.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -542,11 +542,12 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION. METHOD serialize_texts. - DATA: lv_name TYPE ddobjname, - lv_index TYPE i, - ls_dd02v TYPE dd02v, - lt_dd02_texts TYPE ty_dd02_texts, - lt_i18n_langs TYPE TABLE OF langu. + DATA: lv_name TYPE ddobjname, + lv_index TYPE i, + ls_dd02v TYPE dd02v, + lt_dd02_texts TYPE ty_dd02_texts, + lt_i18n_langs TYPE TABLE OF langu, + lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. FIELD-SYMBOLS: LIKE LINE OF lt_i18n_langs, LIKE LINE OF lt_dd02_texts. @@ -558,9 +559,11 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION. lv_name = ms_item-obj_name. " Collect additional languages, skip main lang - it was serialized already + lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ). SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs FROM dd02v WHERE tabname = lv_name + AND ddlanguage IN lt_language_filter AND ddlanguage <> mv_language. "#EC CI_SUBRC LOOP AT lt_i18n_langs ASSIGNING .