From 30201d432928f55f03de27c6a8d63044783bd856 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sat, 6 Feb 2021 03:36:29 -0500 Subject: [PATCH] I18N: Catch exceptions (#4491) * I18N: Catch exceptions Handle exceptions properly and avoid unnecessary serializations * Remove pragma Co-authored-by: Lars Hvam --- .../texts/zcl_abapgit_lxe_texts.clas.abap | 19 ++++++++-- .../zcl_abapgit_objects_super.clas.abap | 38 ++++++++++--------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/src/objects/texts/zcl_abapgit_lxe_texts.clas.abap b/src/objects/texts/zcl_abapgit_lxe_texts.clas.abap index ea277506c..9ec40c40b 100644 --- a/src/objects/texts/zcl_abapgit_lxe_texts.clas.abap +++ b/src/objects/texts/zcl_abapgit_lxe_texts.clas.abap @@ -184,11 +184,18 @@ CLASS zcl_abapgit_lxe_texts IMPLEMENTATION. CALL FUNCTION 'LXE_OBJ_EXPAND_TRANSPORT_OBJ' EXPORTING - pgmid = 'R3TR' - object = iv_object_type - obj_name = lv_object_name + pgmid = 'R3TR' + object = iv_object_type + obj_name = lv_object_name TABLES - ex_colob = rt_obj_list. + ex_colob = rt_obj_list + EXCEPTIONS + unknown_object = 1 + unknown_ta_type = 2 + OTHERS = 3. + IF sy-subrc <> 0. + RETURN. " Ignore error and return empty list + ENDIF. ENDMETHOD. @@ -271,6 +278,10 @@ CLASS zcl_abapgit_lxe_texts IMPLEMENTATION. iv_object_name = iv_object_name iv_object_type = iv_object_type ). + IF lt_obj_list IS INITIAL. + RETURN. + ENDIF. + " Get list of languages that need to be serialized (already resolves * and installed languages) lv_main_lang = get_lang_iso4( ii_xml->i18n_params( )-main_language ). lt_languages = ii_xml->i18n_params( )-translation_languages. diff --git a/src/objects/zcl_abapgit_objects_super.clas.abap b/src/objects/zcl_abapgit_objects_super.clas.abap index e5f300451..31549a9c1 100644 --- a/src/objects/zcl_abapgit_objects_super.clas.abap +++ b/src/objects/zcl_abapgit_objects_super.clas.abap @@ -1,24 +1,25 @@ -CLASS zcl_abapgit_objects_super DEFINITION PUBLIC ABSTRACT. +CLASS zcl_abapgit_objects_super DEFINITION + PUBLIC + ABSTRACT + CREATE PUBLIC . PUBLIC SECTION. - METHODS: - constructor - IMPORTING - is_item TYPE zif_abapgit_definitions=>ty_item - iv_language TYPE spras. - - CLASS-METHODS: - jump_adt - IMPORTING iv_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name - iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type - iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name OPTIONAL - iv_sub_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type OPTIONAL - iv_line_number TYPE i OPTIONAL - RAISING zcx_abapgit_exception. - - CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. + CONSTANTS c_user_unknown TYPE xubname VALUE 'UNKNOWN'. + METHODS constructor + IMPORTING + !is_item TYPE zif_abapgit_definitions=>ty_item + !iv_language TYPE spras . + CLASS-METHODS jump_adt + IMPORTING + !iv_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name + !iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type + !iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name OPTIONAL + !iv_sub_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type OPTIONAL + !iv_line_number TYPE i OPTIONAL + RAISING + zcx_abapgit_exception . PROTECTED SECTION. DATA ms_item TYPE zif_abapgit_definitions=>ty_item . @@ -358,7 +359,8 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION. METHOD serialize_lxe_texts. - IF ii_xml->i18n_params( )-main_language_only = abap_true. + IF ii_xml->i18n_params( )-main_language_only = abap_true OR + ii_xml->i18n_params( )-translation_languages IS INITIAL. RETURN. ENDIF.