Drucken von Datenbankeinträgen über eine Webdienstintegration in einem einzigen Druckauftrag
Überblick
Wahrscheinlich möchten Sie eine Webdienst-Integration erstellen, um die Vorteile der bidirektionalen Kommunikation zu nutzen, die es uns ermöglicht, mehr Informationen darüber zurückzumelden, wie die Trigger-Datei empfangen wurde. Außerdem senden Sie möglicherweise variable Daten, die BarTender für jedes der zu druckenden Etiketten verwenden soll. Allerdings gefällt es Ihnen vielleicht nicht, dass für jeden einzelnen Datensatz, den Sie senden, jeweils ein separater Druckauftrag erstellt wird. Manche Kunden haben zudem Situationen, in denen der Drucker zwischen den Druckaufträgen eine Aufgabe ausführen muss, was die Gesamtzeit für den Druck der gewünschten Etikettenmenge erheblich verlängern würde.
Mit dieser Beispielmethode können wir die Trigger-Verarbeitung einer Webdienst-Integration nutzen und gleichzeitig Ihre gewünschten Datensätze in einem einzigen Druckauftrag zusammenfassen – mithilfe eines Print Command Scripts.
Implementierung
Am besten denken Sie bei jeder Integration daran, die Ereignisse zumindest in zwei Teile zu gliedern: das Ereignis, das die Integration auslöst, und die Ereignisse, die nach dem Empfang des Triggers stattfinden. Der folgende Artikel behandelt den ersten Teil der Integration: Kann ich mehrere Datensätze in einer Webdienst-Integration senden? Wie dort beschrieben, können Sie eine POST-Webdienst-Integration einrichten und mehrere Datensätze senden, wie im folgenden Bild dargestellt:
Beachten Sie, dass dies nur eine Möglichkeit ist, bei der der Benutzer nicht nur die relevanten Daten, sondern auch das Etikett und den Drucker für jeden Datensatz definiert hat. Sie können auch einen anderen Ansatz wählen. So habe ich zum Beispiel meine Daten für die Integration strukturiert:
Der knifflige Teil (und ehrlich gesagt das, was den Integration Builder so leistungsstark macht) ist das, was nach dem Senden der Informationen an die Integration passiert. Zu diesem Zeitpunkt weiß die Webdienst-Integration noch nicht, was diese Daten sind oder wofür sie verwendet werden. Wir möchten die gesendeten Datensätze irgendwie zu einer Art Datensatzgruppe zusammenfassen. Wenn uns das gelingt, können wir unser gewünschtes Dokument mit unserer dynamisch erstellten Datenbank drucken.
Beispieldateien
Hier finden Sie die Beispieldateien, die Sie für dieses Tutorial verwenden können – oder Sie erstellen eigene Dateien:
- ShippingLabel.btw
- TESTDB.txt – Beispieldatenbank für das Etikett
- Multi-RecordSinglePrintJobExample.btin
Erstellen Sie eine Beispieldatenbank-Datei
Erstellen Sie zunächst eine Beispieldatenbank, die widerspiegelt, wie Sie Ihre Daten aus der Integration senden werden. In diesem Beispiel sende ich pro zu druckendem Etikett zwei Daten: die Sendungsnummer und die Seriennummer. Daher habe ich eine durch Kommas getrennte Textdatei wie folgt erstellt und als TESTDB.txt gespeichert:
TrackingNumber,SerialNumber,
T456826,S956845
Erstellen Sie das BarTender-Dokument
Wir müssen das Etikett so vorbereiten, dass es die Sendungsnummer und die Seriennummer, die wir über die Integration senden, akzeptiert, indem wir die Datenbankverbindung mit den entsprechenden Objekten verknüpfen.
- Öffnen Sie ShippingLabel.btw.
- Verbinden Sie Ihre Datenbank (TESTDB.txt) mit BarTender über die Option „Datenbankverbindung einrichten“ in BarTender (als Referenz können Sie diesen Artikel nutzen: Erste Schritte mit Datenbankverbindungen (Video – 5:20))
- Verknüpfen Sie die Header-Felder Ihres Datensatzes mit den gewünschten Objekten in Ihrer Etikettenvorlage (ebenfalls im verlinkten Support-Artikel beschrieben)
- Speichern Sie das Etikett.
Erstellen Sie die Integration
Jetzt müssen wir die Integration erstellen. Da in diesem Beispiel eine POST-Anfrage verwendet wird, sollten wir eine Webdienst-Integration anlegen.
- Öffnen Sie den Integration Builder
- Wählen Sie Neue Integration erstellen
- Wählen Sie Webdienst als gewünschte Integrationsoption und klicken Sie dann auf OK.
- Stellen Sie unter Eingabedaten sicher, dass das Eingabedatenformat auf Unstrukturiert eingestellt ist.
- Unter Antwort können Sie eine beliebige Antwort definieren, die Sie zurücksenden möchten. Hier ein Beispiel für eine Antwort, die Sie verwenden können:
Print Job Status = %PrintJobStatus%
Print Job Messages = %PrintJobMessages% - Löschen Sie unter Aktionen die Aktion „Dokument drucken“, indem Sie auf das rote X rechts neben der Aktion klicken. Klicken Sie dann auf das blaue Plus, um Zugriff auf die verschiedenen Aktionen zu erhalten, die Sie in jeder Integration ausführen können:
- Fügen Sie drei Aktionen hinzu:
Text in Datensatz umwandeln
Datei schreiben
Print Command Script - Passen Sie im Befehl „Text in Datensatz umwandeln“ Folgendes an:
Verbinden Sie unter Textdatenbank-Verbindungskonfiguration die TESTDB.txt mit der Integration.
Stellen Sie sicher, dass die Textquelle auf Variable und %EventData% gesetzt ist.
Stellen Sie sicher, dass die Ausgabe so eingestellt ist, dass der Datensatz in der Variablen %EventData% gespeichert wird. - Passen Sie im Befehl „Datei schreiben“ Folgendes an:
Setzen Sie die Quelle auf Variable %EventData%
Legen Sie das Ziel der zu schreibenden Datenbankdatei auf einen gewünschten Speicherort fest. Achten Sie darauf, dass Ihre Integration an diesem Speicherort über ausreichende Benutzerrechte verfügt. In diesem Beispiel wird die Datei unter C:\test abgelegt.
Benennen Sie die Datei nach Belieben. Der nächste Schritt benötigt diesen Dateinamen.
Wählen Sie aus, was passieren soll, wenn die zu schreibende Datenbankdatei bereits existiert. In diesem Beispiel wurde Datei ersetzen, falls bereits vorhanden gewählt. - Passen Sie im Befehl „Print Command Script“ Folgendes an:
Wählen Sie als Quelle „Eingebettetes Skript“.
Schreiben Sie im Skript-Fenster Folgendes:
Aktivieren Sie bei den Druckoptionen überschreiben das Kontrollkästchen für „Eingabeaufforderung für Daten“.%BTW% /AF="C:\test\ShippingLabelMod.btw" /D="C:\test\TestResult.txt" /P
%END%
Integration testen
Bevor Sie Ihre Integration bereitstellen, sollten Sie sicherstellen, dass sie funktioniert! Nutzen Sie die Option Integration testen im Integration Builder, indem Sie entweder auf das Symbol im Startmenü klicken oder unten im Fenster des Integration Builders auf den Tab „Testen“ neben „Eigenschaften“.
REST-Client einrichten
- Wir benötigen einen REST-Client, um das Senden einer POST-Anfrage an BarTender zu testen. Sie können jeden beliebigen REST-Client verwenden. In diesem Beispiel haben wir Insomnia verwendet, das Sie hier herunterladen können: Insomnia Rest Client
- Nachdem Sie den REST-Client installiert haben, erstellen Sie eine neue POST-Anfrage und wählen Sie „other“ als Textformatierungsoption.
- Geben Sie nun die folgenden Daten ein. Im Prinzip ist unsere Anfrage wie eine Datenbank aufgebaut, wobei jeder Datensatz in einer eigenen Zeile steht. In diesem Beispiel drucken wir fünf Etiketten, wobei jede Zeile die Sendungsnummer und die Seriennummer enthält – genau wie in der Beispieldatenbank TESTDB.txt.
T456826,S956845,
T456827,S956846,
T456828,S956847,
T456829,S956848,
T456820,S956849 - Passen Sie die Webadresse so an, dass sie auf die Integration verweist und diese auslöst. Sie sollte etwa so aussehen:
http://<host>/Integration/WebServiceIntegration/Execute
Sie finden diese Adresse im Tab Dienst innerhalb der Integration. Das <host> ist der Hostname Ihres Computers. Falls Sie diesen nicht kennen, öffnen Sie die Eingabeaufforderung, geben Sie „hostname“ (ohne Anführungszeichen) ein und drücken Sie Enter.
Hier geben Sie den vollständigen URL-Pfad mit Ihrem Hostnamen ein:
Integration testen
- Klicken Sie im Startmenü auf die Option Integration testen.
- Klicken Sie oben rechts im Testfenster auf die Schaltfläche Start. Ihre Integration sollte nun starten.
- Klicken Sie in Ihrem REST-Client auf „Senden“. Es dauert ein paar Sekunden, aber dann sehen Sie nicht nur eine Antwort im REST-Client, sondern auch im Testfenster der Integration:
Integration bereitstellen
- Klicken Sie in der Symbolleiste des Integration Builders auf
Integration bereitstellen, um den Dialog Neue Bereitstellung zu öffnen. - Geben Sie im Dialog Neue Bereitstellung einen Namen und eine Beschreibung für Ihre Bereitstellung ein.
- Stellen Sie sicher, dass bei der Einstellung Integrationsdatei IntegrationFile.btin (oder der von Ihnen gewählte Name) angezeigt wird.
- Fügen Sie unter Zielserver die Server hinzu, auf denen Sie die Integrationsdatei bereitstellen möchten.
- Legen Sie die gewünschten Einstellungen für die Fehlerbehandlung fest.
- Klicken Sie auf OK, um den Dialog zu schließen und die Integrationsdatei bereitzustellen.
- Die Administration Console öffnet sich im Knoten Integrationen und zeigt Ihre Integration an.