Multiplexer

Verwendung

Ein Multiplexer führt mehrere XML-Eingangsnachrichten, die zu verschiedenen Zeitpunkten eintreffen, zu einer XML-Nachricht zusammen.

Beim Verwenden eines Multiplexer-Moduls kann ein hohes Datenaufkommen zu einem unbegründeten Timeout führen. Der Fehler tritt meist auf, wenn der für den Multiplexer konfigurierte Timeout abgelaufen ist und weitere Nachrichten parallel am Multiplexer ankommen. Möglicherweise kann es auch zu einer Race-Condition kommen.

Zusammenführung von Variablen

Die Variablen aller eingehenden Zweige werden zusammengeführt. Dabei bilden die Variablen des letzten durchlaufenen Zweigs die Basis. Die Variablen der anderen Zweige werden immer dann hinzugefügt, wenn deren Variablenname in der Basis noch nicht existiert.

Beispiel

Die folgende Abbildung zeigt, wie zwei Nachrichten aus zwei Konnektoren am Multiplexer zu einer Nachricht zusammengeführt und weitergeleitet werden:

module guide 1336 1

In der folgenden Abbildung fügt der Multiplexer eine Nachricht aus dem Splitter mit den Ergebnissen einer Datenbankabfrage zusammen:

module guide 1336 2

Konfiguration

Der Modultyp hat keine konfigurierbaren Eigenschaften.

Wie die Eingangsnachrichten zusammen geführt werden sollen, legen Sie im Workflow an einer der Eingangsverbindungen fest.

Format der Ausgangsnachricht

Die Ausgangsnachricht hat ein INUBIT-spezifisches XML-Format, das weitgehend konfigurierbar ist.

Dialog Multiplexer Eigenschaften

Aufruf

Im Technical Workflow > Kontextmenü des Multiplexer-Eingangs > Multiplexer Konfiguration ändern

In diesem Dialog legen Sie fest, wie die Eingangsnachrichten des Multiplexers zusammengeführt werden.

Die Einstellungen für das Envelope-XML-Element und den Modus gelten für alle eingehenden Verbindungen des Multiplexers. Alle anderen Einstellungen gelten für jeweils die Verbindung, die in der Liste Existierende Verbindungen markiert ist.

XML Root Envelope

Envelope-XML-Element für ausgehende Nachricht

Name des Wurzel-Elements der zu erzeugenden XML-Ausgangsnachricht.

Modus

  • Nur Nachrichten von einer WF-Ausführung verwenden

    Wenn aktiviert, dann verarbeitet der Multiplexer nur Nachrichten, die zu derselben Workflow-Ausführung gehören und daher dieselbe Prozess-ID (Systemvariable ISProcessID) haben.

  • Zeitgesteuerte Verarbeitung der Nachricht (FIFO)

    Wenn aktiviert ist, dann werden die Nachrichten in der Reihenfolge ihres Eintreffens am Multiplexer verarbeitet (first in, first out).

    Im FIFO-Modus werden Nachrichten verschiedener Workflow-Ausführungen nicht getrennt voneinander behandelt!

  • ISProcessId, ISGlobalProcessId und ISTagName übernehmen von

    Im FIFO-Modus können Sie angeben, von welcher Verbindung die genannten Systemvariablen übernommen werden sollen.

Modul

Modul für Verbindung

In der Liste werden alle Module angezeigt, die mit dem Eingang des Multiplexers verbunden sind.

Um eine Verbindung zu konfigurieren, markieren Sie diese in der Liste.

Sie müssen jede Verbindung einzeln konfigurieren. Wenn nicht alle Verbindungen konfiguriert sind, dann werden die Nachrichten zeitgesteuert verarbeitet (FIFO).

Beschreibung

Beschreibung der Verbindung. Die Beschreibung wird auf der Verbindungslinie angezeigt.

Wertabgleich

  • XML-Element aus Eingangsnachricht für Wertabgleich nutzen

    Wenn aktiviert ist, dann wird in allen Eingangsnachrichten der Wert eines ausgewählten XML-Elements geprüft und es werden immer nur die Nachrichten zusammengeführt, deren Werte identisch sind.

    Mit dieser Funktion können Sie z.B. alle Nachrichten mit derselben Auftragsnummer zusammenführen lassen.

  • XML-Element

    Angabe eines XPath zu dem XML-Element für den Wertabgleich. Alternativ lassen Sie den XPath erzeugen, indem Sie über den module guide 1338 0-Button eine Beispieldatei laden und das Element in der Datei markieren.

Allgemein

  • Envelope-XML-Element für Nachricht setzen

    Wenn markiert, dann wird die Eingangsnachricht in ein Element mit dem von Ihnen angegebenen Namen eingeschlossen.

  • XML-Root-Element in Eingangsnachricht ignorieren

    Wenn die Eingangsnachricht ohne ihr Wurzelelement mit den anderen Nachrichten zusammengeführt werden soll, wählen Sie Ja, andernfalls Nein.

  • Eingangsnachricht erforderlich

    Wenn Sie Ja wählen, wartet der Multiplexer auf die Eingangsnachricht. Die Ausführung des Workflows wird erst fortgesetzt, wenn die Nachricht eingetroffen ist.

    Wenn Sie Nein wählen, verarbeitet der Multiplexer die Eingangsnachricht, wenn diese vorliegt. Falls aber die Eingangsnachricht noch nicht vorhanden ist, während an allen anderen Verbindungen die Bedingungen zum Fortsetzen des Workflows bereits erfüllt sind, dann wartet der Multiplexer bis zum Ablauf des Timeouts. Danach wird der Workflow fortgesetzt.

  • Eingangsnachricht ignorieren

    Wenn markiert, dann wird das Eintreffen der Eingangsnachricht als Signal genutzt, um die Fortsetzung des Workflows auszulösen (vorausgesetzt, die Bedingungen an den anderen Verbindungen sind erfüllt).

    Die Eingangsnachricht selbst wird nicht weitergleitet.

  • Timeout

    Legt fest, wie lange der Multiplexer an diesem Eingang auf das Eintreffen der Eingangsnachricht warten soll.

    Wenn die angegebene Zeitdauer überschritten und die Eingangsnachricht nicht eingetroffen ist, dann

    • wird der Workflow mit einem Fehler abgebrochen, wenn die Eingangsnachricht erforderlich war,

    • wird der Workflow fortgesetzt, wenn die Nachricht nicht erforderlich war.

      Das Timeout beginnt, wenn die erste Nachricht am Multiplexer eintrifft. Ab dann werden auch die Timeouts für alle weiteren, noch nicht eingetroffenen Nachrichten berechnet.

      Ein Timeout = 0 bedeutet, dass der Multiplexer unendlich lange wartet.

  • Anzahl der Eingangsnachrichten

    Erwartete Anzahl von Nachrichten pro Workflow-Ausführung.