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
This commit is contained in:
Marc Bernard 2022-11-04 12:34:43 -04:00 committed by GitHub
parent f8ac419f29
commit 754fe5b5a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,7 +11,9 @@ CLASS zcl_abapgit_object_docv DEFINITION
METHODS constructor METHODS constructor
IMPORTING IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item !is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras. !iv_language TYPE spras
RAISING
zcx_abapgit_exception.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -44,18 +46,29 @@ CLASS zcl_abapgit_object_docv IMPLEMENTATION.
DATA: lv_prefix TYPE namespace, DATA: lv_prefix TYPE namespace,
lv_bare_name TYPE progname. lv_bare_name TYPE progname.
super->constructor( is_item = is_item super->constructor( is_item = is_item
iv_language = iv_language ). iv_language = iv_language ).
CALL FUNCTION 'RS_NAME_SPLIT_NAMESPACE' IF ms_item-obj_name(2) <> 'DT'. " IN, MO, UO, UP
EXPORTING mv_id = ms_item-obj_name(2).
name_with_namespace = ms_item-obj_name mv_doc_object = ms_item-obj_name+2.
IMPORTING ELSE. " DT
namespace = lv_prefix CALL FUNCTION 'RS_NAME_SPLIT_NAMESPACE'
name_without_namespace = lv_bare_name. 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_id = lv_bare_name(2).
mv_doc_object = |{ lv_prefix }{ lv_bare_name+2(*) }|. mv_doc_object = |{ lv_prefix }{ lv_bare_name+2 }|.
ENDIF.
ENDMETHOD. ENDMETHOD.