EPO Consulting Wiki - Anzeige von UBL XML und Anhängen aus SAP ArchivLink

Funktion Anzeige aus DZO / GOS

Nach Aufruf der Anlagenliste in "Dienste zum Objekt" / "Global Object Service" / kurz GOS wird nicht nur das archivierte UBL XML angezeigt, sondern zusätzlich

  • wird das UBL XML in das EPO UBL PDF umgewandelt und das resultierende PDF angezeigt, sowie
  • alle in das UBL XML eingebetteten Anhänge extrahiert und angezeigt.

Anlage eines Enhancements im Funktionsbaustein ARCHIVOBJECT_DISPLAY

Im Funktionsbaustein ARCHIVOBJECT_DISPLAY muss am Anfang ein implizites Enhancement implementiert werden.

Folgende Logik soll implementiert werden. Siehe auch das anschließende Coding Beispiel:

  1. Abfrage der Customizing Tabelle /EPO1/GOSARCH, ob das Archivobjekt und die Dokumentenart eingetragen sind. Es müssen also die für die UBL XML Archivierung verwendeten Dokumentenarten in die Tabelle /EPO1/GOSARCH eingetragen werden.
  2. Aufruf der Methode lo_xre_fetch->display_xrechnung( archiv_id = archiv_id arc_doc_id = archiv_doc_id ) aus der Klasse /epo1/cl_xre_fetch

Coding Beispiel für das GOS Enhancement

Beispielcoding für Enhancement (Aufruf über SE37 und den Funktionsbaustein ARCHIVOBJECT_DISPLAY oder über SE20 und das Enhancement OPTA mit ZF_DISPLAY_XINVOICE).

Enhancement zu OPTA für UBL XML.png

  1 function archivobject_display.
  2 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Funktionsbaustein ARCHIVOBJECT_DISPLAY, Anfang                                                                                                    A
  3 *$*$-Start: (1)---------------------------------------------------------------------------------$*$*
  4 ENHANCEMENT 1  ZF_DISPLAY_XINVOICE.    "active version
  5 *
  6   data: lo_xre_fetch type ref to /epo1/cl_xre_fetch,
  7         lv_reserve type toa01-reserve,
  8         lv_ar_object type /epo1/gosarch-AR_OBJECT,
  9         ls_toaom type toaom.
 10 
 11 * Display XML-Invice in separate dialog
 12 *  check if document exists
 13    select single * from toaom into ls_toaom
 14      where sap_object = objecttype
 15        and ar_object = ar_object
 16        and ar_status = 'X'.
 17    if sy-subrc is initial.
 18      select single reserve from (ls_toaom-connection) into lv_reserve where archiv_id = archiv_id and arc_doc_id = archiv_doc_id.
 19      if sy-subrc eq 0.
 20        select single ar_object from /epo1/gosarch into lv_ar_object
 21          where sap_object = objecttype
 22            and ar_object = ar_object
 23            and reserve = lv_reserve.
 24        if  sy-subrc is initial.
 25          CREATE OBJECT lo_xre_fetch.
 26          lo_xre_fetch->display_xrechnung( archiv_id = archiv_id arc_doc_id = archiv_doc_id ).
 27          return. "leave function module
 28        endif.
 29      endif.
 30    endif.
 31 
 32 ENDENHANCEMENT.
 33 *$*$-End:   (1)---------------------------------------------------------------------------------$*$*
 34 *"----------------------------------------------------------------------
 35 *"*"Lokale Schnittstelle:
 36 *"  IMPORTING
 37 *"     VALUE(ARCHIV_DOC_ID) LIKE  SAPB-SAPADOKID OPTIONAL
 38 *"     VALUE(ARCHIV_DOC_INDEX) LIKE  SAPB-SAPADOKID DEFAULT SPACE
 39 *"     VALUE(ARCHIV_ID) LIKE  TOAAR-ARCHIV_ID OPTIONAL
 40 *"     VALUE(OBJECTTYPE) LIKE  TOAV0-SAP_OBJECT DEFAULT SPACE
 41 *"     VALUE(OBJECT_ID) LIKE  TOAV0-OBJECT_ID DEFAULT SPACE
 42 *"     VALUE(AR_OBJECT) LIKE  TOAV0-AR_OBJECT DEFAULT SPACE
 43 *"     VALUE(LANGUAGE) DEFAULT SPACE
 44 *"     VALUE(SIGN) LIKE  SAPB-SAPBZZ DEFAULT SPACE
 45 *"     VALUE(WINDOW_ID) LIKE  SAPB-SAPWINID DEFAULT SPACE
 46 *"     VALUE(WINDOW_TITLE) LIKE  SAPB-SAPWINTITL DEFAULT SPACE
 47 *"     VALUE(DOC_TYPE) LIKE  TOAOM-DOC_TYPE DEFAULT SPACE
 48 *"     VALUE(POSITIONINALFFILE) DEFAULT SPACE
 49 *"     VALUE(NOGET) DEFAULT SPACE
 50 *"     VALUE(PATHOFFILE) DEFAULT SPACE
 51 *"     VALUE(EOF) DEFAULT SPACE
 52 *"     VALUE(DALENGTH) LIKE  TOADL-DATALENGTH DEFAULT SPACE
 53 *"     VALUE(PFSTATUS) LIKE  SY-PFKEY DEFAULT SPACE
 54 *"     VALUE(REPORT) LIKE  RS38M-PROGRAMM DEFAULT SPACE
 55 *"     VALUE(MULTIPLE) DEFAULT SPACE
 56 *"  EXPORTING
 57 *"     VALUE(RETURNCODE)
 58 *"  TABLES
 59 *"      DISPDOCS STRUCTURE  TOADI OPTIONAL
 60 *"  EXCEPTIONS
 61 *"      ERROR_ARCHIV
 62 *"      ERROR_COMMUNICATIONTABLE
 63 *"      ERROR_KERNEL
 64 *"----------------------------------------------------------------------
 65 
 66 * if document class is missing, try to get it from the archive system
 67   if doc_type is initial and multiple <> 'X'.
 68     call function 'ARCHIVOBJECT_STATUS'
 69       exporting
 70         archiv_doc_id = archiv_doc_id
 71         archiv_id     = archiv_id
 72       importing
 73         document_type = doc_type
 74       exceptions
 75         others        = 0.
 76   endif.
 77 
 78 *  call function 'ALINK_DISPLAY_IMC'
 79 *    exporting
 80 *      archiv_doc_id  = archiv_doc_id
 81 *      archiv_id      = archiv_id
 82 *      window_id      = window_id
 83 *      window_title   = window_title
 84 *      document_class = doc_type
 85 *      object_type    = objecttype
 86 *      object_id      = object_id
 87 *      document_type  = ar_object
 88 *      multiple       = multiple
 89 *    tables
 90 *      dispdocs       = dispdocs
 91 *    exceptions
 92 *      others         = 1.
 93 
 94 CALL FUNCTION 'ALINK_DISPLAY_IMC'
 95     exporting
 96       archiv_doc_id  = archiv_doc_id
 97       archiv_id      = archiv_id
 98       window_id      = window_id
 99       window_title   = window_title
100       document_class = doc_type
101       object_type    = objecttype
102       object_id      = object_id
103       document_type  = ar_object
104       multiple       = multiple
105     tables
106       dispdocs       = dispdocs
107     exceptions
108     ERROR_IMC                           = 1
109     ERROR_CONTENTREPOSITORY             = 2
110     ERROR_ARCHIVELINK_CUSTOMIZING       = 3
111     OTHERS                              = 4
112           .
113 if sy-subrc <> 0.
114     message id sy-msgid type sy-msgty number sy-msgno
115             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
116             raising error_archiv.
117 
118 endif.
119 endfunction.

Anwendersicht in VF03 Faktura anzeigen

Faktura - Anlagenliste

Anlagenliste in VF03.png

Anzeige wählen

UBL XML aus Archiv auswählen zur Anzeige.png

UBL XML und PDF und Anhänge auswählen.png

UBL XML Anzeige aller Dokumente.png