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.