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

  1. 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.

  2. 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.

  3. 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 einem order-Element aufteilen. Wenn solch eine Nachricht z.B. an den order-Elementen aufgeteilt wird, dann ist order das Trennelement und wird in den neu erzeugten Teilnachrichten zum root-Element.

    Das Trennelement wird mit einem XPath-Ausdruck definiert.

    1. Um den XPath-Ausdruck zu erzeugen, klicken Sie auf den Button neben der Option XML-Splitting-Element. Der XPath-Assistent öffnet sich.

    2. Laden Sie eine Beispielnachricht, die das Trennelement enthält, und ziehen Sie das Trennelement in das XPath-Feld.

    3. Schließen Sie den Dialog mit OK.

  4. 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.

  5. 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 module guide 1333 0-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:

    module guide 1333 1
    • 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 module guide 1333 2-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:

    module guide 1334 0

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.

  • 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.

module guide 1335 1