Mit Hilfe des Rechenknotens können Sie Teile einer Eingabenachricht in eine Ausgabenachricht kopieren. Die Ergebnisse einer solchen Kopie hängen vom Typ der verwendeten Ein- und Ausgabe-Parser ab.
Wenn sowohl die Quellen- als auch die Zielnachrichten auf der Stammverzeichnisebene über dieselbe Ordnerstruktur verfügen, wird die Aktion like-parser-copy (Like-Parser-Kopie) ausgeführt. Beispiel:
SET OutputRoot.MQMD = InputRoot.MQMD;
kopiert alle untergeordneten Einträge im MQMD-Ordner der Eingabenachricht in den MQMD-Ordner der Ausgabenachricht.
Ein weiteres Beispiel einer Baumstruktur, von der 'like-parser-copy' unterstützt wird, lautet wie folgt:
SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;
Wenn sich die Ein- und Ausgabenachrichten nicht in der MRM-Domäne befinden, müssen Sie den Rechenknoten verwenden und die Nachrichtenstruktur selbst angeben.
Wenn die Quellen- und Zielnachrichten auf der Stammverzeichnisebene unterschiedliche Ordnerstrukturen aufweisen, können Sie keine exakte Kopie der Nachrichtenquelle erstellen. Stattdessen wird von der Aktion unlike-parser-copy die Quellennachricht als eine Gruppe verschachtelter Ordner angezeigt, die von einem Zweig des Typs 'Name/Wert-Paar' abgeschlossen wird. Wird beispielsweise die Nachricht
<Name3><Name31>Value31</Name31>Value32</Name3>
von XML in MRM kopiert, ergibt dies das Namenselement 'Name3' sowie ein Name-Wert-Element namens 'Name31' mit dem Wert 'Value31'. Die zweite Instanz von XML-pcdata (Value32) kann nicht dargestellt werden und wird gelöscht.
Die Aktion 'unlike-parser-copy' durchsucht die Quellenbaumstruktur und kopiert Ordner (auch "Namenselemente" genannt) und Zweige des Typs 'Name/Wert-Paar'. Die übrigen Einträge weren nicht kopiert; dazu gehören auch Elemente, die vom Quellen-Parser als special (speziell) markiert wurden.
Es folgt ein Beispiel einer Baumstruktur, die zur Aktion 'unlike-parser-copy' führt:
SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;
Falls der Algorithmus, der für die Ausführung von 'unlike-parser-copy' verwendet wird, für Ihre Baumstruktur nicht geeignet ist, müssen Sie das Quellenfeld möglicherweise näher qualifizieren, um den Umfang der Baumstrukturkopie einzuschränken.
Seien Sie vorsichtig, wenn Sie Informationen aus Eingabenachrichten in Ausgabenachrichten kopieren, die sich in anderen Domänen befinden. Möglicherweise wird ESQL so codiert, dass eine Nachrichtenstruktur oder Inhalt erstellt wird, die bzw. der nicht völlig mit den Regeln des Parsers konform ist, der die Ausgabenachricht verarbeiten wird. Dies kann dazu führen, dass eine Ausgabenachricht nicht oder mit unerwartetem Inhalt erstellt wird. Falls Sie glauben, dass die Ausgabenachricht, die von einem bestimmten Nachrichtenfluss generiert wird, nicht den korrekten Inhalt enthält oder nicht das erwartete Format aufweist, überprüfen Sie den ESQL-Code, mit dem die Ausgabenachricht erstellt wird, und suchen Sie potenzielle Diskrepanzen bei der Struktur sowie den Feldtypen, -namen und -werten.
-- Copy message to the output, moving from XML to MRM domains SET OutputRoot.MRM = InputRoot.XML; -- Festlegen des CWF-Formats für die Ausgabe durch die MRM-Domäne SET OutputRoot.Properties.MessageType = '<Name_Nachrichtentyp>'; SET OutputRoot.Properties.MessageSet = '<Name_Nachrichtengruppe>'; SET OutputRoot.Properties.MessageFormat = 'CWF';