Funktionsbaustein ARCHIV CREATE TABLE
Der Funktionsbaustein ARCHIV_CREATE_TABLE kann z. B. ein PDF-Formular archivieren. Dies kann notwendig werden, wenn z. B. das Adobe Forms-Formular im Rahmen der Druck-Workbench (Transaktion EFRM) aufgerufen wird, wo nur ein Beleg bei der Archivierung dem Formular übergeben werden kann. Die Anforderung vom Fachbereich ist jedoch häufig, mehrere Belege bei der Formularausgabe zu archivieren. Dann muss das erzeugte PDF konvertiert werden und dem Funktionsbaustein ARCHIV_CREATE_TABLE übergeben werden.
Beispiel: Im Funktionsbaustein "RS_LIST_TO_SERPLISTS_NO_DIALOG".
Adobe Forms Archivierung
Coding
Ein Beispiel, um ein Objekt abzulegen. Hier das Binärobjekt PDF, was bei der Formularstellung vom Adobe Forms zurückgegeben wurde. Es kann auch jedes andere PDF archiviert werden.
METHOD pdf_archivierung.
DATA: ls_archiv TYPE z_aif_s_archiv,
ls_toadt TYPE toadt,
lv_FLENGTH type SAPB-LENGTH,
lv_anzahl type i.
DATA: lt_binar TYPE STANDARD TABLE OF tbl1024.
IF iv_pdf IS INITIAL.
RAISE err_no_pdf. "Es wurde kein PDF zur Archivierung mitgegeben
ENDIF.
* Konvertiere RAWSTRING in Binärtabelle
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = iv_pdf
TABLES
binary_tab = lt_binar.
* Schleife über N Belege
LOOP AT it_archiv INTO ls_archiv.
IF sy-tabix = 1.
DESCRIBE TABLE lt_binar lines lv_anzahl.
* Dateigröße bestimmen. Sonst wird nur leeres Dokument archiviert
lv_FLENGTH = lv_anzahl * 1024.
CALL FUNCTION 'ARCHIV_CREATE_TABLE'
EXPORTING
ar_object = ls_archiv-ar_object "z. B. 'Z_BELEG' (für EIBE)
object_id = ls_archiv-object_id "Beleg, z. B. 00000000000000001363, 00000000000000001364 oder 00000000000000001365
sap_object = ls_archiv-sap_object "z. B. '/IDXGC/DOC' (für EIBE)
FLENGTH = lv_flength "Dateigröße
IMPORTING
outdoc = ls_toadt "Rückgabetabelle, entscheidend Parameter ARC_DOC_ID
TABLES
"archivobject = lt_archiveobj
binarchivobject = lt_binar
EXCEPTIONS
error_archiv = 01
error_communicationtable = 02
error_connectiontable = 03
error_kernel = 04
error_parameter = 05
OTHERS = 06.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I'
NUMBER sy-msgno
WITH sy-msgv1
sy-msgv2
sy-msgv3
sy-msgv4.
ENDIF.
ELSE.
* Füge die zusätzlichen Verknüpfungen in der Tabelle TOA01 an
* Beim zweiten Satz ist die ARC_DOC_ID (SAP ArchiveLink: Dokument-Id) gefüllt
* und dann braucht nur noch die Verknüpfung zum Archivierungsobjekt erstellt werden
* für jeden weiteren Beleg
CALL FUNCTION 'ARCHIV_CONNECTION_INSERT'
EXPORTING
archiv_id = 'PU'
arc_doc_id = ls_toadt-arc_doc_id "z. B. 005056A8B7ED1ED69D9E3FE94306C24E, s. a. TOA01-ARC_DOC_ID
ar_object = ls_archiv-ar_object "z. B. 'Z_BELEG' (für EIBE)
object_id = ls_archiv-object_id "Beleg, z. B. 00000000000000001363, 00000000000000001364 oder 00000000000000001365
sap_object = ls_archiv-sap_object "z. B. '/IDXGC/DOC' (für EIBE)
EXCEPTIONS
error_connectiontable = 1
OTHERS = 2.
ENDIF.
ENDLOOP.
ENDMETHOD.
Anzeige archiviertes PDF
Aus dem Beleg heraus. Hier ein Immobilienvertrag.
Anzeige der Anlagenliste.



