From 72a1a13033bef173c76e977c5554a162e9fa7c75 Mon Sep 17 00:00:00 2001 From: Albert Mink Date: Tue, 27 Aug 2024 09:44:32 +0200 Subject: [PATCH 1/3] [AFF] experimental: Serialize all languages (#7022) Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> --- src/objects/zcl_abapgit_object_intf.clas.abap | 56 ++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/src/objects/zcl_abapgit_object_intf.clas.abap b/src/objects/zcl_abapgit_object_intf.clas.abap index 8cb1b8faf..c0fd72372 100644 --- a/src/objects/zcl_abapgit_object_intf.clas.abap +++ b/src/objects/zcl_abapgit_object_intf.clas.abap @@ -117,6 +117,9 @@ CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgi RETURNING VALUE(rs_intf) TYPE ty_intf RAISING zcx_abapgit_exception. + METHODS extract_languages_for_transl + IMPORTING is_intf TYPE ty_intf + RETURNING VALUE(rs_result) TYPE zif_abapgit_definitions=>ty_languages. ENDCLASS. @@ -442,12 +445,13 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. METHOD serialize_xml. DATA: - ls_intf TYPE ty_intf, - ls_clskey TYPE seoclskey, - lv_serialized_data TYPE xstring, - lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus, - lt_i18n_file TYPE zif_abapgit_i18n_file=>ty_table_of, - lo_i18n_file TYPE REF TO zif_abapgit_i18n_file. + ls_intf TYPE ty_intf, + ls_clskey TYPE seoclskey, + lv_serialized_data TYPE xstring, + lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus, + lt_i18n_file TYPE zif_abapgit_i18n_file=>ty_table_of, + lo_i18n_file TYPE REF TO zif_abapgit_i18n_file, + lt_languages_for_translation TYPE zif_abapgit_definitions=>ty_languages. ls_clskey-clsname = ms_item-obj_name. @@ -478,9 +482,12 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. lv_serialized_data = lcl_aff_metadata_handler=>serialize( ls_intf ). mo_files->add_raw( iv_ext = 'json' iv_data = lv_serialized_data ). + + lt_languages_for_translation = extract_languages_for_transl( ls_intf ). + lt_i18n_file = lcl_aff_metadata_handler=>serialize_translations( is_intf = ls_intf - it_language = mo_i18n_params->ms_params-translation_languages ). + it_language = lt_languages_for_translation ). LOOP AT lt_i18n_file INTO lo_i18n_file. mo_files->add_i18n_file( lo_i18n_file ). @@ -770,4 +777,39 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. serialize_xml( io_xml ). ENDMETHOD. + + METHOD extract_languages_for_transl. + DATA: lv_desc TYPE seocompotx, + lv_desc_int TYPE seoclasstx, + lv_desc_sub TYPE seosubcotx, + lv_unique TYPE sy-langu, + lv_sap2 TYPE string, + lt_unique_language TYPE STANDARD TABLE OF sy-langu, + lv_original_language TYPE sy-langu. + + + lv_original_language = mo_i18n_params->ms_params-main_language. + + LOOP AT is_intf-description INTO lv_desc WHERE langu <> lv_original_language. + APPEND lv_desc-langu TO lt_unique_language. + ENDLOOP. + + LOOP AT is_intf-description_int INTO lv_desc_int WHERE langu <> lv_original_language. + APPEND lv_desc_int-langu TO lt_unique_language. + ENDLOOP. + + LOOP AT is_intf-description_sub INTO lv_desc_sub WHERE langu <> lv_original_language. + APPEND lv_desc_sub-langu TO lt_unique_language. + ENDLOOP. + + SORT lt_unique_language ASCENDING. + DELETE ADJACENT DUPLICATES FROM lt_unique_language. + + LOOP AT lt_unique_language INTO lv_unique. + lv_sap2 = zcl_abapgit_convert=>language_sap1_to_sap2( lv_unique ). + APPEND lv_sap2 TO rs_result. + ENDLOOP. + + ENDMETHOD. + ENDCLASS. From ff60057e62186643497c744968191df402c78b51 Mon Sep 17 00:00:00 2001 From: fvalves Date: Thu, 29 Aug 2024 09:46:23 +0200 Subject: [PATCH 2/3] Enable deserialization of DSFD, DSFI and DRAS (#7029) Co-authored-by: Lars Hvam Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> --- src/objects/aff/zcl_abapgit_object_dras.clas.abap | 6 +++--- src/objects/aff/zcl_abapgit_object_dsfd.clas.abap | 8 ++++---- src/objects/aff/zcl_abapgit_object_dsfi.clas.abap | 8 ++++---- src/objects/core/zcl_abapgit_objects_activation.clas.abap | 7 +++++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/objects/aff/zcl_abapgit_object_dras.clas.abap b/src/objects/aff/zcl_abapgit_object_dras.clas.abap index b4c19fa29..1b1c3e6bc 100644 --- a/src/objects/aff/zcl_abapgit_object_dras.clas.abap +++ b/src/objects/aff/zcl_abapgit_object_dras.clas.abap @@ -31,19 +31,19 @@ CLASS zcl_abapgit_object_dras IMPLEMENTATION. RECEIVING handler = lo_dras_handler. - CALL METHOD lo_dras_handler->('CHECK_EXISTENCE') + CALL METHOD lo_dras_handler->('IF_DD_DRAS_WB_HANDLER~CHECK_EXISTENCE') EXPORTING iv_as4local = 'A' RECEIVING rv_exists = lv_exists. IF lv_exists = abap_true. - CALL METHOD lo_dras_handler->('GET_SOURCE_CONTAINER') + CALL METHOD lo_dras_handler->('IF_DD_DRAS_WB_HANDLER~GET_SOURCE_CONTAINER') EXPORTING iv_as4local = 'A' RECEIVING ro_result = lo_dras_source_container. - CALL METHOD lo_dras_source_container->('GET_AS4USER') + CALL METHOD lo_dras_source_container->('IF_DD_DRAS_SOURCE_CONTAINER~GET_AS4USER') RECEIVING rv_as4user = rv_user. ENDIF. diff --git a/src/objects/aff/zcl_abapgit_object_dsfd.clas.abap b/src/objects/aff/zcl_abapgit_object_dsfd.clas.abap index e17511271..e958201c9 100644 --- a/src/objects/aff/zcl_abapgit_object_dsfd.clas.abap +++ b/src/objects/aff/zcl_abapgit_object_dsfd.clas.abap @@ -31,20 +31,20 @@ CLASS zcl_abapgit_object_dsfd IMPLEMENTATION. RECEIVING handler = lo_dsfd_handler. - CALL METHOD lo_dsfd_handler->('CHECK_EXISTENCE') + CALL METHOD lo_dsfd_handler->('IF_DD_DSFD_WB_HANDLER~CHECK_EXISTENCE') EXPORTING iv_as4local = 'A' RECEIVING rv_exists = lv_exists. IF lv_exists = abap_true. - CALL METHOD lo_dsfd_handler->('GET_SOURCE_CONTAINER') - EXPORTING + CALL METHOD lo_dsfd_handler->('IF_DD_DSFD_WB_HANDLER~GET_SOURCE_CONTAINER') +EXPORTING iv_as4local = 'A' RECEIVING ro_result = lo_dsfd_source_container. - CALL METHOD lo_dsfd_source_container->('GET_AS4USER') + CALL METHOD lo_dsfd_source_container->('IF_DD_DSFD_CONTAINER_SRC~GET_AS4USER') RECEIVING rv_as4user = rv_user. ENDIF. diff --git a/src/objects/aff/zcl_abapgit_object_dsfi.clas.abap b/src/objects/aff/zcl_abapgit_object_dsfi.clas.abap index d69627923..6fed1e139 100644 --- a/src/objects/aff/zcl_abapgit_object_dsfi.clas.abap +++ b/src/objects/aff/zcl_abapgit_object_dsfi.clas.abap @@ -34,22 +34,22 @@ CLASS zcl_abapgit_object_dsfi IMPLEMENTATION. ASSIGN ('CE_DD_DSFI_AS4LOCAL=>EN_STATE-ACTIVE') TO . IF sy-subrc = 0. - CALL METHOD lo_dsfi_handler->('CHECK_EXISTENCE') + CALL METHOD lo_dsfi_handler->('IF_DD_DSFI_WB_HANDLER~CHECK_EXISTENCE') EXPORTING iv_as4local = RECEIVING rv_exists = lv_exists. IF lv_exists = abap_true. - CALL METHOD lo_dsfi_handler->('GET_SOURCE_CONTAINER') + CALL METHOD lo_dsfi_handler->('IF_DD_DSFI_WB_HANDLER~GET_SOURCE_CONTAINER') EXPORTING iv_as4local = RECEIVING ro_result = lo_dsfi_source_container. - CALL METHOD lo_dsfi_source_container->('GET_AS4USER') + CALL METHOD lo_dsfi_source_container->('IF_DD_DSFI_SRC_CONTAINER~GET_AS4USER') RECEIVING - rv_as4user = rv_user. + rv_result = rv_user. ENDIF. ENDIF. diff --git a/src/objects/core/zcl_abapgit_objects_activation.clas.abap b/src/objects/core/zcl_abapgit_objects_activation.clas.abap index e4aa845c7..ebd5f900a 100644 --- a/src/objects/core/zcl_abapgit_objects_activation.clas.abap +++ b/src/objects/core/zcl_abapgit_objects_activation.clas.abap @@ -56,7 +56,9 @@ CLASS zcl_abapgit_objects_activation DEFINITION c_ddls TYPE c LENGTH 24 VALUE 'DDLS DRUL DTDC DTEB', c_switches TYPE c LENGTH 24 VALUE 'SF01 SF02 SFSW SFBS SFBF', c_para TYPE c LENGTH 4 VALUE 'PARA', " can be referenced by DTEL - c_enhd TYPE c LENGTH 4 VALUE 'ENHD'. + c_enhd TYPE c LENGTH 4 VALUE 'ENHD', + c_scalarfunc TYPE c LENGTH 9 VALUE 'DSFD DSFI', + c_aspect TYPE c LENGTH 4 VALUE 'DRAS'. CLASS-DATA: gt_classes TYPE STANDARD TABLE OF ty_classes WITH DEFAULT KEY . @@ -554,7 +556,8 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION. c_enqueue NS iv_obj_type AND c_sqsc NS iv_obj_type AND c_stob NS iv_obj_type AND c_ntab NS iv_obj_type AND c_ddls NS iv_obj_type AND c_para NS iv_obj_type AND - c_switches NS iv_obj_type AND iv_obj_type <> c_enhd. + c_switches NS iv_obj_type AND iv_obj_type <> c_enhd AND + c_aspect NS iv_obj_type AND c_scalarfunc NS iv_obj_type. rv_result = abap_false. ENDIF. From be5ec9ed297e0c65c692e78e5ec41aa3f38a7151 Mon Sep 17 00:00:00 2001 From: fvalves Date: Thu, 29 Aug 2024 16:28:46 +0200 Subject: [PATCH 3/3] Added test attributes to test class in ZCL_ABAPGIT_PROPERTIES_FILE (#7030) Co-authored-by: Lars Hvam --- .../texts/zcl_abapgit_properties_file.clas.testclasses.abap | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/objects/texts/zcl_abapgit_properties_file.clas.testclasses.abap b/src/objects/texts/zcl_abapgit_properties_file.clas.testclasses.abap index c18ccd38b..67bcf2291 100644 --- a/src/objects/texts/zcl_abapgit_properties_file.clas.testclasses.abap +++ b/src/objects/texts/zcl_abapgit_properties_file.clas.testclasses.abap @@ -1,4 +1,6 @@ -CLASS ltcl_test DEFINITION FINAL FOR TESTING. +CLASS ltcl_test DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. PUBLIC SECTION. PROTECTED SECTION.