TCP/IP-Integration: Daten von 2 verschiedenen Ports scannen, vergleichen und anschließend bedingt drucken
Frage
Ist es in einer Integration möglich, Daten aus zwei verschiedenen Quellen auszulesen, diese Daten zu vergleichen und dann abhängig vom Ergebnis des Vergleichs ein Dokument bedingt zu drucken?
Antwort
Ja, das ist tatsächlich möglich. Nachfolgend finden Sie ein Beispiel (unter Verwendung von TCP/IP-Sockets).
1.-
Die folgende Integrationsdatei zeigt, wie Sie entweder eine TCP/IP- oder eine serielle Port-Integration erstellen können, um einen ersten Datensatz zu scannen (dieser bleibt in %EventData%), und dann eine zusätzliche Aktion erstellen, die einen zweiten Datensatz scannt (den ich in einer Variablen namens %SecondScan% gespeichert habe).
Sobald Sie beide Datensätze haben, können Sie diese mit einem PowerShell-Skript vergleichen:
$First = "%EventData%"
$Second = "%SecondScan%"
$Result = $First.equals($Second)
$Result
Das Ergebnis wird in eine dritte Integrationsvariable namens %Result% geschrieben.
Abschließend können Sie eine bedingte "Dokument drucken"-Aktion ausführen, basierend auf dem Wert von %Result%. Ist dieser Wert True, wird das Dokument gedruckt (in meinem Beispiel habe ich "Beginnt mit" T verwendet, da der Vergleich mit "Equals" True nicht funktioniert hat).
2.-
Einige Screenshots:
Die anfängliche TCP/IP-Erkennung ist so konfiguriert, dass sie nach 5 Zeichen das Lesen beendet:
Das zweite Auslesen vom Netzwerksocket (diesmal als Aktion) funktioniert genauso, öffnet aber eine neue Verbindung:
Der PowerShell-Befehl zum Vergleich:
Die bedingte "Dokument drucken"-Aktion:
Weitere Informationen (Intern)
Die Integrationsdatei + die Hydrashok-Datei (ein Seagull-Tool, mit dem Daten über die serielle Schnittstelle oder den TCP/IP-Port gesendet werden können) können hier heruntergeladen werden:
https://seagull/confluence/pages/viewpage.action?pageId=36799556
Für die Hydrashok-Konfiguration habe ich zwei Trigger erstellt: Einer wird nach 5 Sekunden ausgelöst und liefert die Daten für die TCP/IP-Integration, der zweite wird nach 15 Sekunden ausgelöst und liefert die Daten für die "Read from Network Socket"-Aktion.