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>
This commit is contained in:
Gregor Wolf 2022-05-30 12:18:32 +02:00 committed by GitHub
parent 5e7cf0b27e
commit 276ad4e808
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 35 deletions

View File

@ -289,7 +289,8 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
FIELD-SYMBOLS <ls_sotr_use> LIKE LINE OF et_sotr_use. FIELD-SYMBOLS <ls_sotr_use> 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) " SOTR usage (see LSOTR_SYSTEM_SETTINGSF01, FORM GET_OBJECT_TABLE)
" LIMU: CPUB, WAPP, WDYC, WDYD, WDYV " LIMU: CPUB, WAPP, WDYC, WDYD, WDYV
@ -308,6 +309,9 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
DELETE lv_sotr-entries WHERE langu <> iv_language. DELETE lv_sotr-entries WHERE langu <> iv_language.
CHECK lv_sotr-entries IS NOT INITIAL. CHECK lv_sotr-entries IS NOT INITIAL.
ENDIF. 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. INSERT lv_sotr INTO TABLE et_sotr.
ENDLOOP. ENDLOOP.

View File

@ -369,8 +369,9 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
METHOD serialize_descr. METHOD serialize_descr.
DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
lv_language TYPE spras. 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. IF ii_xml->i18n_params( )-main_language_only = abap_true.
lv_language = mv_language. lv_language = mv_language.
@ -383,6 +384,9 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
IF lines( lt_descriptions ) = 0. IF lines( lt_descriptions ) = 0.
RETURN. RETURN.
ENDIF. 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' ii_xml->add( iv_name = 'DESCRIPTIONS'
ig_data = lt_descriptions ). ig_data = lt_descriptions ).
@ -504,7 +508,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
DATA: ls_vseoclass TYPE vseoclass, DATA: ls_vseoclass TYPE vseoclass,
ls_clskey TYPE seoclskey, 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. 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 " Table d010tinf stores info. on languages in which program is maintained
" Select all active translations of program texts " Select all active translations of program texts
" Skip main language - it was already serialized " Skip main language - it was already serialized
lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ).
SELECT DISTINCT language SELECT DISTINCT language
INTO TABLE lt_langu_additional INTO TABLE lt_langu_additional
FROM d010tinf FROM d010tinf
WHERE r3state = 'A' WHERE r3state = 'A'
AND prog = mv_classpool_name AND prog = mv_classpool_name
AND language IN lt_language_filter
AND language <> mv_language. AND language <> mv_language.
ii_xml->add( iv_name = 'VSEOCLASS' ii_xml->add( iv_name = 'VSEOCLASS'
@ -566,7 +573,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
FROM dokhl FROM dokhl
WHERE id = 'CL' WHERE id = 'CL'
AND object = ls_clskey-clsname 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 serialize_docu( ii_xml = ii_xml
iv_clsname = ls_clskey-clsname iv_clsname = ls_clskey-clsname

View File

@ -129,13 +129,14 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
METHOD serialize_texts. METHOD serialize_texts.
DATA: lv_name TYPE ddobjname, DATA: lv_name TYPE ddobjname,
lv_index TYPE i, lv_index TYPE i,
ls_dd01v TYPE dd01v, ls_dd01v TYPE dd01v,
lt_dd07v TYPE TABLE OF dd07v, lt_dd07v TYPE TABLE OF dd07v,
lt_i18n_langs TYPE TABLE OF langu, lt_i18n_langs TYPE TABLE OF langu,
lt_dd01_texts TYPE ty_dd01_texts, lt_dd01_texts TYPE ty_dd01_texts,
lt_dd07_texts TYPE ty_dd07_texts. lt_dd07_texts TYPE ty_dd07_texts,
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs, FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
<ls_dd07v> LIKE LINE OF lt_dd07v, <ls_dd07v> LIKE LINE OF lt_dd07v,
@ -150,14 +151,17 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
lv_name = ms_item-obj_name. lv_name = ms_item-obj_name.
" Collect additional languages, skip main lang - it was serialized already " 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 SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
FROM dd01v FROM dd01v
WHERE domname = lv_name WHERE domname = lv_name
AND ddlanguage IN lt_language_filter
AND ddlanguage <> mv_language. "#EC CI_SUBRC AND ddlanguage <> mv_language. "#EC CI_SUBRC
SELECT DISTINCT ddlanguage AS langu APPENDING TABLE lt_i18n_langs SELECT DISTINCT ddlanguage AS langu APPENDING TABLE lt_i18n_langs
FROM dd07v FROM dd07v
WHERE domname = lv_name WHERE domname = lv_name
AND ddlanguage IN lt_language_filter
AND ddlanguage <> mv_language. "#EC CI_SUBRC AND ddlanguage <> mv_language. "#EC CI_SUBRC
SORT lt_i18n_langs. SORT lt_i18n_langs.

View File

@ -91,11 +91,12 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
METHOD serialize_texts. METHOD serialize_texts.
DATA: lv_name TYPE ddobjname, DATA: lv_name TYPE ddobjname,
lv_index TYPE i, lv_index TYPE i,
ls_dd04v TYPE dd04v, ls_dd04v TYPE dd04v,
lt_dd04_texts TYPE ty_dd04_texts, lt_dd04_texts TYPE ty_dd04_texts,
lt_i18n_langs TYPE TABLE OF langu. lt_i18n_langs TYPE TABLE OF langu,
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs, FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
<ls_dd04_text> LIKE LINE OF lt_dd04_texts. <ls_dd04_text> LIKE LINE OF lt_dd04_texts.
@ -107,9 +108,11 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
lv_name = ms_item-obj_name. lv_name = ms_item-obj_name.
" Collect additional languages, skip main lang - it was serialized already " 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 SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
FROM dd04v FROM dd04v
WHERE rollname = lv_name WHERE rollname = lv_name
AND ddlanguage IN lt_language_filter
AND ddlanguage <> mv_language. "#EC CI_SUBRC AND ddlanguage <> mv_language. "#EC CI_SUBRC
LOOP AT lt_i18n_langs ASSIGNING <lv_lang>. LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.

View File

@ -56,7 +56,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION. CLASS zcl_abapgit_object_intf IMPLEMENTATION.
METHOD constructor. METHOD constructor.
@ -143,8 +143,8 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
METHOD deserialize_pre_ddic. METHOD deserialize_pre_ddic.
DATA: ls_vseointerf TYPE vseointerf, DATA: ls_vseointerf TYPE vseointerf,
ls_clskey TYPE seoclskey. ls_clskey TYPE seoclskey.
ls_clskey-clsname = ms_item-obj_name. ls_clskey-clsname = ms_item-obj_name.
@ -197,8 +197,9 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
METHOD serialize_descr. METHOD serialize_descr.
DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
lv_language TYPE spras. 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. IF ii_xml->i18n_params( )-main_language_only = abap_true.
lv_language = mv_language. lv_language = mv_language.
@ -208,6 +209,10 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
iv_object_name = iv_clsname iv_object_name = iv_clsname
iv_language = lv_language ). 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. IF lines( lt_descriptions ) = 0.
RETURN. RETURN.
ENDIF. ENDIF.
@ -268,9 +273,9 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
METHOD serialize_xml. METHOD serialize_xml.
DATA: DATA:
ls_vseointerf TYPE vseointerf, ls_vseointerf TYPE vseointerf,
ls_clskey TYPE seoclskey, ls_clskey TYPE seoclskey,
lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus. lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus.
ls_clskey-clsname = ms_item-obj_name. ls_clskey-clsname = ms_item-obj_name.

View File

@ -112,8 +112,9 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
METHOD serialize_texts. METHOD serialize_texts.
DATA: lt_tpool_i18n TYPE ty_tpools_i18n, DATA: lt_tpool_i18n TYPE ty_tpools_i18n,
lt_tpool TYPE textpool_table. lt_tpool TYPE textpool_table,
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
FIELD-SYMBOLS <ls_tpool> LIKE LINE OF lt_tpool_i18n. FIELD-SYMBOLS <ls_tpool> 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 " Table d010tinf stores info. on languages in which program is maintained
" Select all active translations of program texts " Select all active translations of program texts
" Skip main language - it was already serialized " Skip main language - it was already serialized
lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ).
SELECT DISTINCT language SELECT DISTINCT language
INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n
FROM d010tinf FROM d010tinf
WHERE r3state = 'A' WHERE r3state = 'A'
AND prog = ms_item-obj_name 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. SORT lt_tpool_i18n BY language ASCENDING.
LOOP AT lt_tpool_i18n ASSIGNING <ls_tpool>. LOOP AT lt_tpool_i18n ASSIGNING <ls_tpool>.
@ -160,8 +163,8 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
METHOD zif_abapgit_object~delete. METHOD zif_abapgit_object~delete.
DATA: DATA:
lv_program LIKE sy-repid, lv_program LIKE sy-repid,
lv_obj_name TYPE e071-obj_name. lv_obj_name TYPE e071-obj_name.
lv_program = ms_item-obj_name. lv_program = ms_item-obj_name.

View File

@ -542,11 +542,12 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
METHOD serialize_texts. METHOD serialize_texts.
DATA: lv_name TYPE ddobjname, DATA: lv_name TYPE ddobjname,
lv_index TYPE i, lv_index TYPE i,
ls_dd02v TYPE dd02v, ls_dd02v TYPE dd02v,
lt_dd02_texts TYPE ty_dd02_texts, lt_dd02_texts TYPE ty_dd02_texts,
lt_i18n_langs TYPE TABLE OF langu. lt_i18n_langs TYPE TABLE OF langu,
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs, FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
<ls_dd02_text> LIKE LINE OF lt_dd02_texts. <ls_dd02_text> LIKE LINE OF lt_dd02_texts.
@ -558,9 +559,11 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
lv_name = ms_item-obj_name. lv_name = ms_item-obj_name.
" Collect additional languages, skip main lang - it was serialized already " 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 SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
FROM dd02v FROM dd02v
WHERE tabname = lv_name WHERE tabname = lv_name
AND ddlanguage IN lt_language_filter
AND ddlanguage <> mv_language. "#EC CI_SUBRC AND ddlanguage <> mv_language. "#EC CI_SUBRC
LOOP AT lt_i18n_langs ASSIGNING <lv_lang>. LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.