Verarbeiten von Eingabe-Queues
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 Funktion 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.
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:

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:

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.