LXE: more objects (#6144)

This commit is contained in:
Alexander Tsybulsky 2023-03-13 18:36:00 +02:00 committed by GitHub
parent c8ef89d5fd
commit 69515e5f55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 234 additions and 62 deletions

View File

@ -313,7 +313,7 @@
"max_one_statement": true, "max_one_statement": true,
"message_exists": false, "message_exists": false,
"method_length": { "method_length": {
"statements": 100, "statements": 105,
"checkForms": true, "checkForms": true,
"ignoreTestClasses": false, "ignoreTestClasses": false,
"errorWhenEmpty": false "errorWhenEmpty": false

View File

@ -26,6 +26,9 @@ CLASS zcl_abapgit_object_clas DEFINITION
deserialize_tpool deserialize_tpool
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception, RAISING zcx_abapgit_exception,
deserialize_tpool_i18n
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
deserialize_sotr deserialize_sotr
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass iv_package TYPE devclass
@ -59,10 +62,19 @@ CLASS zcl_abapgit_object_clas DEFINITION
RAISING RAISING
zcx_abapgit_exception, zcx_abapgit_exception,
serialize_tpool serialize_tpool
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RETURNING
VALUE(rt_tpool) TYPE textpool_table
RAISING
zcx_abapgit_exception,
serialize_tpool_i18n
IMPORTING IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output !ii_xml TYPE REF TO zif_abapgit_xml_output
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL !it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
!iv_clsname TYPE seoclsname !iv_clsname TYPE seoclsname
!it_tpool_main TYPE textpool_table
RAISING RAISING
zcx_abapgit_exception, zcx_abapgit_exception,
serialize_sotr serialize_sotr
@ -120,7 +132,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_clas IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
METHOD constructor. METHOD constructor.
@ -309,10 +321,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
DATA: lv_clsname TYPE seoclsname, DATA: lv_clsname TYPE seoclsname,
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt, lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
lt_tpool TYPE textpool_table, lt_tpool TYPE textpool_table.
lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools,
ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool.
ii_xml->read( EXPORTING iv_name = 'TPOOL' ii_xml->read( EXPORTING iv_name = 'TPOOL'
CHANGING cg_data = lt_tpool_ext ). CHANGING cg_data = lt_tpool_ext ).
@ -329,6 +338,18 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
it_text_pool = lt_tpool it_text_pool = lt_tpool
iv_language = mv_language ). iv_language = mv_language ).
ENDMETHOD.
METHOD deserialize_tpool_i18n.
DATA: lv_clsname TYPE seoclsname,
lt_tpool TYPE textpool_table,
lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools,
ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool.
lv_clsname = ms_item-obj_name.
ii_xml->read( EXPORTING iv_name = 'I18N_TPOOL' ii_xml->read( EXPORTING iv_name = 'I18N_TPOOL'
CHANGING cg_data = lt_i18n_tpool ). CHANGING cg_data = lt_i18n_tpool ).
@ -551,15 +572,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
METHOD serialize_tpool. METHOD serialize_tpool.
DATA: lt_tpool TYPE textpool_table, DATA lt_tpool TYPE textpool_table.
lv_index TYPE i,
lv_langu TYPE sy-langu,
lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools,
ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool.
FIELD-SYMBOLS <ls_tpool> LIKE LINE OF lt_tpool.
DATA lt_tpool_main LIKE SORTED TABLE OF <ls_tpool> WITH UNIQUE KEY id key.
lt_tpool = mi_object_oriented_object_fct->read_text_pool( lt_tpool = mi_object_oriented_object_fct->read_text_pool(
iv_class_name = iv_clsname iv_class_name = iv_clsname
@ -567,12 +580,29 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
ii_xml->add( iv_name = 'TPOOL' ii_xml->add( iv_name = 'TPOOL'
ig_data = add_tpool( lt_tpool ) ). ig_data = add_tpool( lt_tpool ) ).
IF ii_xml->i18n_params( )-main_language_only = abap_true OR lines( lt_tpool ) = 0. rt_tpool = lt_tpool.
ENDMETHOD.
METHOD serialize_tpool_i18n.
DATA: lt_tpool TYPE textpool_table,
lv_index TYPE i,
lv_langu TYPE sy-langu,
lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools,
ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool.
FIELD-SYMBOLS <ls_tpool> LIKE LINE OF it_tpool_main.
DATA lt_tpool_main LIKE SORTED TABLE OF <ls_tpool> WITH UNIQUE KEY id key.
IF ii_xml->i18n_params( )-main_language_only = abap_true OR lines( it_tpool_main ) = 0.
RETURN. RETURN.
ENDIF. ENDIF.
" Copy single records to be able to catch duplicate key error " Copy single records to be able to catch duplicate key error
LOOP AT lt_tpool ASSIGNING <ls_tpool>. LOOP AT it_tpool_main ASSIGNING <ls_tpool>.
INSERT <ls_tpool> INTO TABLE lt_tpool_main. INSERT <ls_tpool> INTO TABLE lt_tpool_main.
IF sy-subrc <> 0. IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Inconsistent textpool in { ms_item-obj_type } { ms_item-obj_name }| ). zcx_abapgit_exception=>raise( |Inconsistent textpool in { ms_item-obj_type } { ms_item-obj_name }| ).
@ -614,6 +644,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
METHOD serialize_xml. METHOD serialize_xml.
DATA: ls_vseoclass TYPE vseoclass, DATA: ls_vseoclass TYPE vseoclass,
lt_tpool TYPE textpool_table,
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. lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
@ -654,9 +685,19 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
ii_xml->add( iv_name = 'VSEOCLASS' ii_xml->add( iv_name = 'VSEOCLASS'
ig_data = ls_vseoclass ). ig_data = ls_vseoclass ).
serialize_tpool( ii_xml = ii_xml lt_tpool = serialize_tpool(
iv_clsname = ls_clskey-clsname ii_xml = ii_xml
it_langu_additional = lt_langu_additional ). iv_clsname = ls_clskey-clsname ).
IF ii_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_tpool_i18n(
ii_xml = ii_xml
it_langu_additional = lt_langu_additional
it_tpool_main = lt_tpool
iv_clsname = ls_clskey-clsname ).
ELSE.
serialize_lxe_texts( ii_xml ).
ENDIF.
IF ls_vseoclass-category = seoc_category_exception. IF ls_vseoclass-category = seoc_category_exception.
serialize_sotr( ii_xml ). serialize_sotr( ii_xml ).
@ -766,6 +807,12 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
deserialize_tpool( io_xml ). deserialize_tpool( io_xml ).
IF io_xml->i18n_params( )-translation_languages IS INITIAL.
deserialize_tpool_i18n( io_xml ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
deserialize_sotr( ii_xml = io_xml deserialize_sotr( ii_xml = io_xml
iv_package = iv_package ). iv_package = iv_package ).

View File

@ -62,7 +62,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_doma IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_DOMA IMPLEMENTATION.
METHOD adjust_exit. METHOD adjust_exit.
@ -386,9 +386,14 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
zcx_abapgit_exception=>raise_t100( ). zcx_abapgit_exception=>raise_t100( ).
ENDIF. ENDIF.
deserialize_texts( ii_xml = io_xml IF io_xml->i18n_params( )-translation_languages IS INITIAL.
is_dd01v = ls_dd01v deserialize_texts(
it_dd07v = lt_dd07v ). ii_xml = io_xml
is_dd01v = ls_dd01v
it_dd07v = lt_dd07v ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
deserialize_longtexts( ii_xml = io_xml deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_doma ). iv_longtext_id = c_longtext_id_doma ).
@ -504,8 +509,13 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
io_xml->add( iv_name = 'DD07V_TAB' io_xml->add( iv_name = 'DD07V_TAB'
ig_data = lt_dd07v ). ig_data = lt_dd07v ).
serialize_texts( ii_xml = io_xml IF io_xml->i18n_params( )-translation_languages IS INITIAL.
it_dd07v = lt_dd07v ). serialize_texts(
ii_xml = io_xml
it_dd07v = lt_dd07v ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
serialize_longtexts( ii_xml = io_xml serialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_doma ). iv_longtext_id = c_longtext_id_doma ).

View File

@ -35,7 +35,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_dtel IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
METHOD deserialize_texts. METHOD deserialize_texts.
@ -204,8 +204,13 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
zcx_abapgit_exception=>raise_t100( ). zcx_abapgit_exception=>raise_t100( ).
ENDIF. ENDIF.
deserialize_texts( ii_xml = io_xml IF io_xml->i18n_params( )-translation_languages IS INITIAL.
is_dd04v = ls_dd04v ). deserialize_texts(
ii_xml = io_xml
is_dd04v = ls_dd04v ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
deserialize_longtexts( ii_xml = io_xml deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_dtel ). iv_longtext_id = c_longtext_id_dtel ).
@ -326,7 +331,11 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
io_xml->add( iv_name = 'DD04V' io_xml->add( iv_name = 'DD04V'
ig_data = ls_dd04v ). ig_data = ls_dd04v ).
serialize_texts( io_xml ). IF io_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_texts( io_xml ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
serialize_longtexts( ii_xml = io_xml serialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_dtel ). iv_longtext_id = c_longtext_id_dtel ).

View File

@ -48,7 +48,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_msag IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_MSAG IMPLEMENTATION.
METHOD delete_documentation. METHOD delete_documentation.
@ -407,7 +407,11 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
deserialize_longtexts( ii_xml = io_xml deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_msag ). iv_longtext_id = c_longtext_id_msag ).
deserialize_texts( io_xml ). IF io_xml->i18n_params( )-translation_languages IS INITIAL.
deserialize_texts( io_xml ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
@ -496,7 +500,11 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
serialize_longtexts_msag( it_t100 = lt_source serialize_longtexts_msag( it_t100 = lt_source
ii_xml = io_xml ). ii_xml = io_xml ).
serialize_texts( io_xml ). IF io_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_texts( io_xml ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -8,11 +8,12 @@ CLASS zcl_abapgit_object_para DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
METHODS unlock METHODS unlock
IMPORTING IMPORTING
!iv_paramid TYPE memoryid . !iv_paramid TYPE memoryid .
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_object_para IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_PARA IMPLEMENTATION.
METHOD unlock. METHOD unlock.
@ -120,7 +121,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
ls_tpara TYPE tpara, ls_tpara TYPE tpara,
ls_tparat TYPE tparat. ls_tparat TYPE tparat.
SELECT SINGLE * FROM tpara INTO ls_tpara SELECT SINGLE * FROM tpara INTO ls_tpara
WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF
IF sy-subrc = 0. IF sy-subrc = 0.
@ -131,8 +131,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
io_xml->read( EXPORTING iv_name = 'TPARA' io_xml->read( EXPORTING iv_name = 'TPARA'
CHANGING cg_data = ls_tpara ). CHANGING cg_data = ls_tpara ).
io_xml->read( EXPORTING iv_name = 'TPARAT'
CHANGING cg_data = ls_tparat ).
CALL FUNCTION 'RS_CORR_INSERT' CALL FUNCTION 'RS_CORR_INSERT'
EXPORTING EXPORTING
@ -155,9 +153,17 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
MODIFY tpara FROM ls_tpara. "#EC CI_SUBRC MODIFY tpara FROM ls_tpara. "#EC CI_SUBRC
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
io_xml->read(
EXPORTING iv_name = 'TPARAT'
CHANGING cg_data = ls_tparat ).
MODIFY tparat FROM ls_tparat. "#EC CI_SUBRC MODIFY tparat FROM ls_tparat. "#EC CI_SUBRC
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL.
deserialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
@ -217,7 +223,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
DATA: ls_tpara TYPE tpara, DATA: ls_tpara TYPE tpara,
ls_tparat TYPE tparat. ls_tparat TYPE tparat.
SELECT SINGLE * FROM tpara INTO ls_tpara SELECT SINGLE * FROM tpara INTO ls_tpara
WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF
IF sy-subrc <> 0. IF sy-subrc <> 0.
@ -230,8 +235,16 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
io_xml->add( iv_name = 'TPARA' io_xml->add( iv_name = 'TPARA'
ig_data = ls_tpara ). ig_data = ls_tpara ).
io_xml->add( iv_name = 'TPARAT'
ig_data = ls_tparat ). io_xml->add(
iv_name = 'TPARAT'
ig_data = ls_tparat ).
" Here only the original language is serialized,
" so it should be present for the moment. LXEs are just translations
IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL.
serialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -47,7 +47,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_SHI3 IMPLEMENTATION.
METHOD clear_fields. METHOD clear_fields.
@ -315,6 +315,10 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION.
MODIFY ttree FROM ls_ttree. MODIFY ttree FROM ls_ttree.
ENDIF. ENDIF.
IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL.
deserialize_lxe_texts( io_xml ).
ENDIF.
IF zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ) = abap_true. IF zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ) = abap_true.
" Add necessary SHI6, SHI7, and TABU entries to transport (SAP Note 455542) " Add necessary SHI6, SHI7, and TABU entries to transport (SAP Note 455542)
insert_transport( iv_transport ). insert_transport( iv_transport ).
@ -412,12 +416,13 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION.
TABLES TABLES
description = lt_titles. description = lt_titles.
lv_all_languages = abap_false.
IF io_xml->i18n_params( )-main_language_only = abap_false. IF io_xml->i18n_params( )-main_language_only = abap_true
lv_all_languages = abap_true. OR io_xml->i18n_params( )-translation_languages IS NOT INITIAL.
ELSE. lv_all_languages = abap_false.
DELETE lt_titles WHERE spras <> mv_language. DELETE lt_titles WHERE spras <> mv_language.
ELSE.
lv_all_languages = abap_true.
ENDIF. ENDIF.
CALL FUNCTION 'STREE_HIERARCHY_READ' CALL FUNCTION 'STREE_HIERARCHY_READ'
@ -453,5 +458,9 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION.
io_xml->add( iv_name = 'TREE_TEXTS' io_xml->add( iv_name = 'TREE_TEXTS'
ig_data = lt_texts ). ig_data = lt_texts ).
IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL.
serialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -112,7 +112,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_tabl IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
METHOD clear_dd03p_fields. METHOD clear_dd03p_fields.
@ -821,8 +821,13 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
deserialize_indexes( io_xml ). deserialize_indexes( io_xml ).
deserialize_texts( io_xml = io_xml IF io_xml->i18n_params( )-translation_languages IS INITIAL.
is_dd02v = ls_dd02v ). deserialize_texts(
io_xml = io_xml
is_dd02v = ls_dd02v ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
deserialize_longtexts( ii_xml = io_xml deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_tabl ). iv_longtext_id = c_longtext_id_tabl ).
@ -1051,7 +1056,11 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
io_xml->add( iv_name = 'DD36M' io_xml->add( iv_name = 'DD36M'
ig_data = lt_dd36m ). ig_data = lt_dd36m ).
serialize_texts( io_xml ). IF io_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_texts( io_xml ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
serialize_longtexts( ii_xml = io_xml serialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_tabl ). iv_longtext_id = c_longtext_id_tabl ).

View File

@ -106,7 +106,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_tran IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_TRAN IMPLEMENTATION.
METHOD add_data. METHOD add_data.
@ -765,8 +765,11 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
it_authorizations = lt_tstca ). it_authorizations = lt_tstca ).
ENDIF. ENDIF.
" Texts deserializing (translations) IF io_xml->i18n_params( )-translation_languages IS INITIAL.
deserialize_texts( io_xml ). deserialize_texts( io_xml ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
@ -892,8 +895,11 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
io_xml->add( iv_name = 'AUTHORIZATIONS' io_xml->add( iv_name = 'AUTHORIZATIONS'
ig_data = lt_tstca ). ig_data = lt_tstca ).
" Texts serializing (translations) IF io_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_texts( io_xml ). serialize_texts( io_xml ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -63,7 +63,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_view IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
METHOD deserialize_texts. METHOD deserialize_texts.
@ -299,8 +299,13 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
zcx_abapgit_exception=>raise_t100( ). zcx_abapgit_exception=>raise_t100( ).
ENDIF. ENDIF.
deserialize_texts( io_xml = io_xml IF io_xml->i18n_params( )-translation_languages IS INITIAL.
is_dd25v = ls_dd25v ). deserialize_texts(
io_xml = io_xml
is_dd25v = ls_dd25v ).
ELSE.
deserialize_lxe_texts( io_xml ).
ENDIF.
deserialize_longtexts( ii_xml = io_xml deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_view ). iv_longtext_id = c_longtext_id_view ).
@ -447,7 +452,11 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION.
io_xml->add( ig_data = lt_dd28v io_xml->add( ig_data = lt_dd28v
iv_name = 'DD28V_TABLE' ). iv_name = 'DD28V_TABLE' ).
serialize_texts( io_xml ). IF io_xml->i18n_params( )-translation_languages IS INITIAL.
serialize_texts( io_xml ).
ELSE.
serialize_lxe_texts( io_xml ).
ENDIF.
serialize_longtexts( ii_xml = io_xml serialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_view ). iv_longtext_id = c_longtext_id_view ).

View File

@ -184,11 +184,19 @@ CLASS zcl_abapgit_objects DEFINITION
IMPORTING IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item !is_item TYPE zif_abapgit_definitions=>ty_item
!ii_log TYPE REF TO zif_abapgit_log . !ii_log TYPE REF TO zif_abapgit_log .
CLASS-METHODS determine_i18n_params
IMPORTING
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_main_language_only TYPE abap_bool
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_objects IMPLEMENTATION. CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
METHOD changed_by. METHOD changed_by.
@ -595,7 +603,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
lt_steps_id TYPE zif_abapgit_definitions=>ty_deserialization_step_tt, lt_steps_id TYPE zif_abapgit_definitions=>ty_deserialization_step_tt,
lt_steps TYPE zif_abapgit_objects=>ty_step_data_tt, lt_steps TYPE zif_abapgit_objects=>ty_step_data_tt,
lx_exc TYPE REF TO zcx_abapgit_exception. lx_exc TYPE REF TO zcx_abapgit_exception.
DATA: lo_folder_logic TYPE REF TO zcl_abapgit_folder_logic. DATA lo_folder_logic TYPE REF TO zcl_abapgit_folder_logic.
DATA ls_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params.
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result, FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result,
<lv_step_id> TYPE LINE OF zif_abapgit_definitions=>ty_deserialization_step_tt, <lv_step_id> TYPE LINE OF zif_abapgit_definitions=>ty_deserialization_step_tt,
@ -636,6 +645,10 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_main_language( ) check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_main_language( )
it_items = lt_items ). it_items = lt_items ).
ls_i18n_params = determine_i18n_params(
io_dot = io_repo->get_dot_abapgit( )
iv_main_language_only = io_repo->get_local_settings( )-main_language_only ).
IF lines( lt_items ) = 1. IF lines( lt_items ) = 1.
ii_log->add_info( |>>> Deserializing 1 object| ). ii_log->add_info( |>>> Deserializing 1 object| ).
ELSE. ELSE.
@ -690,6 +703,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
IF lo_files->is_json_metadata( ) = abap_false. IF lo_files->is_json_metadata( ) = abap_false.
"analyze XML in order to instantiate the proper serializer "analyze XML in order to instantiate the proper serializer
lo_xml = lo_files->read_xml( ). lo_xml = lo_files->read_xml( ).
lo_xml->i18n_params( ls_i18n_params ).
ls_metadata = lo_xml->get_metadata( ). ls_metadata = lo_xml->get_metadata( ).
ELSE. ELSE.
" there's no XML and metadata for JSON format " there's no XML and metadata for JSON format
@ -844,6 +858,23 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD determine_i18n_params.
IF io_dot IS BOUND.
rs_i18n_params-main_language = io_dot->get_main_language( ).
rs_i18n_params-main_language_only = iv_main_language_only.
rs_i18n_params-translation_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
iv_main_language = io_dot->get_main_language( )
it_i18n_languages = io_dot->get_i18n_languages( ) ).
ENDIF.
IF rs_i18n_params-main_language IS INITIAL.
rs_i18n_params-main_language = sy-langu.
ENDIF.
ENDMETHOD.
METHOD exists. METHOD exists.
DATA: li_obj TYPE REF TO zif_abapgit_object. DATA: li_obj TYPE REF TO zif_abapgit_object.

View File

@ -14,14 +14,18 @@ CLASS zcl_abapgit_xml_input DEFINITION
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
METHODS: fix_xml.
DATA ms_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params.
METHODS fix_xml.
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_xml_input IMPLEMENTATION. CLASS ZCL_ABAPGIT_XML_INPUT IMPLEMENTATION.
METHOD constructor. METHOD constructor.
@ -59,6 +63,17 @@ CLASS zcl_abapgit_xml_input IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_xml_input~i18n_params.
IF is_i18n_params IS SUPPLIED.
ms_i18n_params = is_i18n_params.
ENDIF.
rs_i18n_params = ms_i18n_params.
ENDMETHOD.
METHOD zif_abapgit_xml_input~read. METHOD zif_abapgit_xml_input~read.
DATA: lx_error TYPE REF TO cx_transformation_error, DATA: lx_error TYPE REF TO cx_transformation_error,

View File

@ -10,6 +10,12 @@ INTERFACE zif_abapgit_xml_input
METHODS get_raw METHODS get_raw
RETURNING RETURNING
VALUE(ri_raw) TYPE REF TO if_ixml_document . VALUE(ri_raw) TYPE REF TO if_ixml_document .
METHODS i18n_params
IMPORTING
!is_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params .
* todo, add read_xml to match add_xml in lcl_xml_output * todo, add read_xml to match add_xml in lcl_xml_output
METHODS get_metadata METHODS get_metadata
RETURNING RETURNING