PDF-Merging mit SAP (kostenloser Download)
SAP bietet seit 2016 die Möglichkeit, nativ - also ohne Dritt-Software - mehrere PDF zu einem einzigen PDF zu mergen. Dies bedarf einiger Vorarbeit und etwas Umdenken bei der Weiterverarbeitung. Im Folgenden wird das Merging mit Hilfe der ausgelieferten ABAP/OO-Klasse erläutert. Anschließend werden zwei Anwendungsbeispiele genannt, bei denen PDF-Merging nützlich sein kann.
Implementierung
Die Implementierung ist, gemessen an den zu erfüllenden Voraussetzungen, die je nach Release-Strategie der Showstopper sein können, vergleichsweise einfach.
Wichtig ist, dass die Adobe Forms Formulare so verarbeitet werden, dass diese nicht direkt ausgegeben, sondern lediglich als xstring zurückgegeben werden. Dieses Verhalten kann beim Starten des Spooljobs über den Parameter getpdf erzwungen werden. Die einzelnen Pakete können in einer internen Tabelle (im Folgenden beispielhaft xstring_tab genannt) gesammelt werden.
Zu Beginn muss das Objekt der Merger-Klasse instanziiert werden:
TRY.
DATA(lo_pdf_merger) = NEW cl_rspo_pdf_merge( ).
CATCH cx_rpso_pdf_merge.
ENDTRY.
Dann können die einzelnen xstrings an das Objekt übergeben werden:
LOOP AT xstring_tab ASSIGNING FIELD-SYMBOL(<lfs_xstring>).
lo_pdf_merger->add_document( <lfs_xstring> ).
ENDLOOP.
Danach werden die angefügten xstrings zu einem xstring gemergt:
lo_pdf_merger->merge_documents( IMPORTING merged_document = DATA(lw_merged) ).
Anwendungsszenarien
Parallelisierung
Ein möglicher Anwendungsfall ist das Zusammenfügen einzelner Dokumente, die in asynchron aufgerufenen Funktionsbausteinen erstellt werden. Inbesondere wird das PDF-Merging interessant, wenn garantiert werden muss, dass die Dokumente in der richtigen Reihenfolge gedruckt werden, auch wenn die Prozesse in unbestimmter Reihenfolge ablaufen und enden. In diesem Fall können die Dokumente in einer internen Tabelle zusammen mit einer Tasknummer gesammelt, entsprechend sortiert, zusammengefügt und abschließend ausgegeben werden.
Große Dokumente
Ein weiterer Anwendungsfall ist die Prozessierung extrem großer Dokumente. PDF-Merging wird hierbei ab einem Umfang von ca. 1000 Seiten, neben der Alternative Bundling & Stitching, interessant sowie in Abhängigkeit der Formular-Komplexität ab 2000 bis 3000 Seiten zwingend notwendig. Das Formular bzw. seine Bestandteile (Kopfbereich, Summenzeilen etc.) müssen für die paketweise Verarbeitung angepasst werden. Weil es nun nicht mehr ausreicht, Informationen wie “erste/letzte Seite” abzufragen, müssen weitere Kontrollflags wie “erstes/letztes Paket” übergeben und per Scripting passend darauf reagiert werden.
Paper
Details zu Voraussetzungen, Implementierungen und Nachverarbeitung sowie weitere Code-Snippets finden Sie im Download.
Nutzen Sie bereits das native PDF-Merging mit SAP? In welchen Anwendungsszenarien nutzen Sie PDF-Merging? Welchen Schwierigkeiten sind Ihnen begegnet? Wenn Sie Anmerkungen, Fragen oder generell Feedback haben, können Sie die Kommentarfunktion nutzen.