From 754fe5b5a817de58feb95658344511dad22375d1 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Fri, 4 Nov 2022 12:34:43 -0400 Subject: [PATCH] DOCV: Fix dump for namespaced documents (#5855) * DOCV: Fix dump for namespaced documents Fix handing of documents in classes UO and UP which use a different namespace logic than DT, IN, MO. Regression #5756 Closes #5854 * Doc classes --- src/objects/zcl_abapgit_object_docv.clas.abap | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/objects/zcl_abapgit_object_docv.clas.abap b/src/objects/zcl_abapgit_object_docv.clas.abap index 8b6a45142..b6eb8919e 100644 --- a/src/objects/zcl_abapgit_object_docv.clas.abap +++ b/src/objects/zcl_abapgit_object_docv.clas.abap @@ -11,7 +11,9 @@ CLASS zcl_abapgit_object_docv DEFINITION METHODS constructor IMPORTING !is_item TYPE zif_abapgit_definitions=>ty_item - !iv_language TYPE spras. + !iv_language TYPE spras + RAISING + zcx_abapgit_exception. PROTECTED SECTION. PRIVATE SECTION. @@ -44,18 +46,29 @@ CLASS zcl_abapgit_object_docv IMPLEMENTATION. DATA: lv_prefix TYPE namespace, lv_bare_name TYPE progname. - super->constructor( is_item = is_item + super->constructor( is_item = is_item iv_language = iv_language ). - CALL FUNCTION 'RS_NAME_SPLIT_NAMESPACE' - EXPORTING - name_with_namespace = ms_item-obj_name - IMPORTING - namespace = lv_prefix - name_without_namespace = lv_bare_name. + IF ms_item-obj_name(2) <> 'DT'. " IN, MO, UO, UP + mv_id = ms_item-obj_name(2). + mv_doc_object = ms_item-obj_name+2. + ELSE. " DT + CALL FUNCTION 'RS_NAME_SPLIT_NAMESPACE' + EXPORTING + name_with_namespace = ms_item-obj_name + IMPORTING + namespace = lv_prefix + name_without_namespace = lv_bare_name + EXCEPTIONS + delimiter_error = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |Error determining namespace for { ms_item-obj_type } { ms_item-obj_name }| ). + ENDIF. - mv_id = lv_bare_name(2). - mv_doc_object = |{ lv_prefix }{ lv_bare_name+2(*) }|. + mv_id = lv_bare_name(2). + mv_doc_object = |{ lv_prefix }{ lv_bare_name+2 }|. + ENDIF. ENDMETHOD.