Demultiplexer
Verwendung
Der Demultiplexer leitet eine Eingangsnachricht in einen von mehreren Ausgängen, vorausgesetzt, die Bedingungen sind erfüllt, die an dem Ausgang definiert sind.
Zusätzlich kann das Modul XML-basierte Eingangsnachrichten vor der Weiterleitung in mehrere Teile splitten. Dementsprechend wird der verbleibende Workflow, der nach dem Demultiplexer folgt, in mehreren Iterationen durchgeführt, einmalig für jeden Teil. Für eine Iteration kann der verbleibende Workflow entweder in einem Durchgang bis zu seinem Ende durchgeführt werden, bevor die nächste Iteration startet. Oder die Iteration kann unterbrochen werden, z.B. durch ein Wait- oder Multiplexer-Modul, sodass die nächste Iteration starten kann, bevor die unterbrochene Iteration fortgesetzt wird. Dies sollte in Ihrem Workflow berücksichtigt werden, wenn Sie z.B. Semaphoren benutzen.
Es ist möglich direkt mehrere Demultiplexer-Module zu verbinden, z.B., wenn Sie eine bessere Visualisierung zweier funktional unterschiedlicher Demultiplexer bevorzugen, wie etwa einen teilenden Demultiplexer folgend von einem verteilenden Demultiplexer. |
Für eine bessere Übersicht ist es ebenfalls möglich, das zweite Demultiplexer-Modul und die darauffolgenden Module durch einen Workflow Connector zu ersetzen und diese in einem separaten Workflow zu integrieren. |
Bedingungen für die Nachrichtenweiterleitung definieren
Die Bedingungen für die Weiterleitung der Eingangsnachricht legen Sie fest, nachdem Sie den Demultiplexer in ein Diagramm eingefügt und mit den nachfolgenden Modulen verbunden haben.
So gehen Sie vor
-
Führen Sie eine der folgenden Aktionen aus:
-
Doppelklicken Sie eine Verbindung zwischen Demultiplexer und nachfolgendem Modul.
-
Markieren Sie eine Verbindung, öffnen Sie das Kontextmenü und wählen Sie Demultiplexer Konfiguration ändern.
Der Dialog (siehe Dialog Demultiplexer Konfiguration) wird angezeigt.
-
-
Legen Sie fest, unter welchen Umständen die gewählte Verbindung genutzt werden soll:
-
Immer, wenn keine Bedingung oder BPM Rule zutrifft:
Markieren Sie die Option Diesen Ausgang benutzen, wenn keine Bedingungen an anderen Verbindungen zutreffen.
-
Wenn eine oder mehrere Bedingungen zutreffen:
Klicken Sie auf den Button Bedingung hinzufügen.
Die Eingabefelder zum Definieren von Bedingungen werden eingeblendet.
Eine Bedingung besteht aus folgenden Elementen:
-
Wert in der XML-Eingangsnachricht selbst oder ein Variablenwert in der Nachricht oder ein XPath-Ausdruck, der sich auf die XML-Eingangsnachricht bezieht.
-
Ein Vergleichswert (XML-Daten, Variablen oder einer Zeichenkette)
-
Ein Operator, mit dem Sie die Art des Vergleichs festgelegen.
Sie können für jede Verbindung mehrere Bedingungen anlegen und diese mit UND oder ODER verknüpfen.
-
-
Wenn eine BPM Rule zutrifft:
Klicken Sie auf den Button BPM Rule verwenden. Die Bedienfelder zum Auswählen einer Routing-Regel werden eingeblendet.
Die Routing-Regel muss bereits angelegt und im Repository gespeichert worden sein.
Siehe BPM Rules einsetzen.
-
-
XML-Eingangsnachricht teilen
Eine XML-Eingangsnachricht kann in mehrere Ausgangsnachrichten aufgeteilt werden. Damit können Sie z.B. eine XML-Eingangsnachricht, die mehrere Bestellungen in
order
-Elementen enthält, in mehrere Nachrichten mit jeweils einer Bestellung in einemorder
-Element aufteilen. Wenn solch eine Nachricht z.B. an denorder
-Elementen aufgeteilt wird, dann istorder
das Trennelement und wird in den neu erzeugten Teilnachrichten zum root-Element.Das Trennelement wird mit einem XPath-Ausdruck definiert.
-
Um den XPath-Ausdruck zu erzeugen, klicken Sie auf den Button neben der Option XML-Splitting-Element. Der XPath-Assistent öffnet sich.
Siehe XPath-Assistent.
-
Laden Sie eine Beispielnachricht, die das Trennelement enthält, und ziehen Sie das Trennelement in das XPath-Feld.
-
Schließen Sie den Dialog mit OK.
-
-
Um die nächste Verbindung zu konfigurieren, wählen Sie im Bereich Modul für Verbindung das nächste Modul aus, dessen Verbindung Sie mit Bedingungen belegen möchten, und wiederholen die Schritte 2 und 3.
-
Klicken Sie auf OK, um die konfigurierten Verbindungen zu speichern und den Dialog zu schließen.
Dialog Demultiplexer Konfiguration
Existierende Verbindungen
Liste aller Module, die mit dem Tool verbunden sind. Im Dialog wird immer die Konfiguration des aktuell markierten Moduls bzw. dessen Ausgang angezeigt.
Die Module, die mit dem Demultiplexer verbunden sind, werden im Dialog entsprechend ihrer Verarbeitungsreihenfolge aufgelistet. Die Verarbeitungsreihenfolge wird mit den Pfeil-Buttons über der Liste geändert. Um die Liste nach der vertikalen Anordnung der Module in Ihrem Technical Workflow zu sortieren, klicken Sie auf den -Button.
Beschreibung
Erläuternder Kommentar. Wird auf der Verbindungslinie zum markierten Modul angezeigt.
Bedingungen
-
Diesen Ausgang benutzen, wenn keine Bedingungen an anderen Verbindungen zutreffen
Legt die Verbindung als Standard-Ausgang fest für alle Nachrichten, die keine der anderen Bedingungen erfüllen. Die Verbindung wird automatisch mit otherwise benannt. Wenn die Option nicht markiert ist und eine Nachricht gar keine Bedingung erfüllt, dann wird ein Fehler erzeugt und im Monitoring angezeigt.
-
Bedingung hinzufügen (Button)
Blendet die folgenden Bedienfelder zum Festlegen von Bedingungen ein:
-
Operator für Verknüpfungen: Zum Verknüpfen von mehreren Bedingungen.
-
AND: Alle Bedingungen müssen zutreffen.
-
OR: Eine der Bedingungen muss zutreffen.
-
-
Button D: Die Bedingung bezieht sich auf ein Element in der XML-basierten Nachricht. Im Eingabefeld muss ein XPath-Ausdruck eingegeben werden.
Falls eine Beispiel-XML-Datei vorliegt, klicken Sie auf den -Button und wählen das Element aus.
-
Button V: Die Bedingung bezieht sich auf eine Variable. Alle vorhandenen Variablen werden in der nebenstehenden Liste angezeigt.
-
Button X: Die Bedingung bezieht sich auf einen XPath-Ausdruck. Der XPath wird auf einem leeren Dokument ausgeführt (nicht auf dem Datenstrom). Der -Button öffnet einen Assistenten zum Anlegen des XPath-Ausdrucks.
-
Operator
Zur Auswahl eines Operators für den Werteabgleich. Es gibt folgende Operatoren:
Operator Bedeutung =
Gleich
<
Kleiner als
>
Größer als
>=
Größer gleich
⇐
Kleiner gleich
!=
Ungleich
Exists
Existiert
NotExists
Existiert nicht
XPath
XPath-Ausdruck
-
Buttons D und V: Siehe oben.
-
Button S: Die Bedingung bezieht sich auf die eingegebene Zeichenkette.
Beispiele:
-
/AUFTRAG/AUFTRAGSSUMME > 1000
-
/AUFTRAG/LIEFERUNG/ = Express
-
/IBISProfile/Profile/Name Exists
Wenn der Knoten
Name
in der Eingangsnachricht vorhanden ist, dann wird in diesen Ausgang verzweigt. -
count(/Order/test1) > 1
Wenn die Auswertung der XPath-Funktion
count()
ergibt, dass der Knoten/Order/test1
mehr als einmal existiert, dann wird in diesen Ausgang verzweigt.
-
-
BPM Rule verwenden (Button)
Blendet die folgenden Bedienfelder zum Zuordnen einer BPM Rule ein:
Splitting Konfiguration
-
XML-Splitting-Element
XML-basierte Eingangsnachrichten können an einem ausgewählten Element aufgeteilt werden, sodass z.B. aus einer Rechnung mit vier Einzelposten vier Rechnungen mit je einem Posten entstehen. Das Splitting-Element wird durch einen XPath-Ausdruck definiert und wird in den neu erzeugten Teilnachrichten zum
root
-Element.Der Button neben der Option öffnet den XPath-Assistenten zum Definieren des XPath-Ausdrucks.
Siehe XPath-Assistent
-
Splitting auf übergeordneter Ebene durchführen
Erweitert das Splitting um den Elternknoten des Splitting-Elements. Diese Option ist nützlich, wenn der Elternknoten Informationen enthält, die in jeder Nachricht gebraucht werden, die durch das Splitting entsteht.
Iteration und deren Ergebnis anzeigen
Wird die Splitting-Funktion genutzt, werden im Watchpoint-Dialog die Iterationen und deren Werte angezeigt.
Darüber hinaus werden im Bereich Workflow-Variablen die beiden Variablen demux.iterator
und demux.totalIerations
mit den Werten der ausgewählten Iteration und der Gesamtanzahl der Iterationen.
In der rechten oberen Ecke des Watchpoint-Dialogs kann die gewünschte Iteration durch direkte Eingabe oder über die Pfeile nach oben und nach unten ausgewählt werden.
Anschließend wird das Ergebnis der Iteration im Feld Nachricht angezeigt.