Show TOC

Verarbeiten von Eingabe-QueuesLocate this document in the navigation structure

Verwendung

Die Laufzeit von Message-Mappings arbeitet mit Queues (siehe auch Erweiterte benutzerdefinierte Funktionen ):

  • Für jedes Feld in der Ausgangsstruktur gibt es eine Queue

  • Standard- und benutzerdefinierte Funktionen verarbeiten die Eingabe-Queues. Das Ergebnis einer Berechnung wird in eine Ergebnis-Queue geschrieben.

  • Die Ergebnis-Queue einer Funktion kann wiederum als Eingabe-Queue für eine weitere Funktione dienen.

  • Schließlich gibt es eine Queue für das Zielfeld. Die Restriktionen der Zielfelder bestimmen, welche Werte der Zielfeld-Queue in die Zielstruktur geschrieben werden.

Wenn Sie eine XML-Instanz im Editor der Test-Umgebung angelegt haben, können Sie sich die verschiedenen Queues im Datenfluss-Editor anzeigen lassen.

Unterschiedlich lange Eingabe-Queues

Wenn es in der Ausgangsstruktur Elemente mit einer Häufigkeit größer als 1 gibt, können in einem Kontext einer Queue mehrere Werte stehen. Solange die Eingabe-Queues pro Kontext die gleiche Anzahl von Werten haben, ist die Verarbeitung dieser Werte in Funktionen eindeutig:

Abbildung 1: Verarbeiten von Eingabe-Queues (gleiche Anzahl von Werten für jeden Kontext)

In dem folgenden Beispiel haben die Eingabe-Queues für die concat -Funktion eine unterschiedliche Anzahl von Werten in den zusammengehörenden Kontexten. Wenn einer Funktion aus so einem Grund ein Eingabewert aus einer Queue fehlt, verwendet die Laufzeit des Message-Mappings einfach den letzten Wert, den es aus dieser Queue gelesen hat:

Abbildung 2: Verarbeiten von Eingabe-Queues (unterschiedliche Anzahl von Werten für jeden Kontext)

Das funktioniert auch für erzeugende Funktionen (zum Beispiel Konstanten), die nur einen Wert erzeugen, wenn sie mit einer Funktion verbunden sind: Hat eine weitere Eingabe-Queue mehr als einen Wert in einem Kontext, verwendet die Mapping-Laufzeit den bereits von der erzeugenden Funktion erzeugten Wert einfach noch einmal.