Batch-Verarbeitung
Connect kann nicht nur verwendet werden, um einzelne Dokumente zu erstellen, sondern beherrscht auch Batch-Verarbeitung, d. h. es kann eine grössere Menge an einzelnen Dokumenten über einen einzelnen Connect-Aufruf erstellt und nach der Erstellung optional in einem einzigen Dokument zusammengeführt werden.
Wenn Batches verarbeitet werden, gibt es gewisse Besonderheiten im Ablauf, die beachtet werden sollten:
- Für einen Batch gibt es nur ein ConnectorResult für den gesamten Batch. Schliesst ein einziges Dokument mit "Error" ab, so wird der gesamte Batch als fehlerhaft gewertet. Dasselbe gilt analog für "Cancel". Tritt in einem Batch ein "Error" und ein "Cancel" auf, so wird das Resultat "Error" sein.
- Das CreateConnectorResult-Befehl und Filter-Commands werden nur auf der Batch-Ebene berücksichtigt.
- Der TemplatePicker darf nicht verwendet werden, entsprechend muss für jedes zu erstellende Dokument im Batch zu Beginn die Vorlage eindeutig klar sein. Der Grund dafür ist, dass der TemplatePicker asynchron zum gesamten Batch ausgeführt wird und somit nicht garantiert durchlaufen wird, wenn das Gesamtresultat evaluiert wird. Ist dies für einen Eintrag im Batch nicht gewährleistet, so wird der Document Creation Server eine
400-Bad-Request
Fehlermeldung zurückgeben. Clientseitig kann das verarbeitet werden, muss aber aus vorher genannten Gründen vermieden werden. - Falls Batch Level Commands angegeben werden, muss der erste Befehl ein Merge-Befehl sein. Serverseitig muss der Merge-Befehl immer angegeben werden, auch wenn keine anderen Batch-level Befehle angegeben sind, da der Server immer nur eine Antwort, also ein Dokument, zurücksenden kann. Für den Fall, dass über den Document Creation Server mehrere Einzeldokumente generiert und verarbeitet werden sollen, empfiehlt es sich das über einzelne Aufrufe zu erledigen.
- Vorteile:
- Die Anfragen können parallel ausgeführt werden, und somit die benötigte Zeit pro Dokument verringert werden (siehe Performance)
- Weitere Zeiteinsparung durch Wegfallen des Merge-Befehl
- Jedes Dokument kann einzeln weiterverarbeitet werden und das Resultat ist für jedes Einzeldokument bekannt.
- Nachteil: Mehr Netzwerkverkehr
- Vorteile:
- Falls keine Batch Level Commands angegeben werden, können mehrere Dokumente mit dem Client gleichzeitig generiert werden. Serverseitig wird dies insofern unterstützt, als dass auf den Document Level Commands der SaveAs-Befehl angegeben werden kann, um die Dokumente einzeln zu speichern. Als Resultat wird aber nach wie vor das mit dem Merge-Befehl zusammengefügte Dokument sein.
- Der CreateConnectorResult-Befehl erstellt nicht sofort die Resultatdatei. Er setzt nur das Flag, dass eine Datei geschrieben werden soll. Die Resultatdatei wird immer nach Abschluss aller Befehle geschrieben. Sobald ein "Cancel" oder "Error" auftritt, werden die verbleibenden Dokumente und Befehle nicht mehr für das
ConnectorResult
berücksichtigt.
Note
Um sicherzustellen, dass alle Connect-Befehle, also sowohl auf Element als auch auf Batch-Ebene erfolgreich ausgeführt wurden, kann nur das Resultat-File der gesamten Batch-Operation verwendet werden.
Note
Es ist nicht möglich, via Connect-Befehle das Resultat von sowohl Dokumentgenerierung als auch den Befehlen selber auszuwerten, wenn der TemplatePicker verwendet wird. Hier muss dann auch auf einzelner Ebene die Resultatdatei verwendet werden.