Nachrichtenformat ändern

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.

Like-Parser

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;
Falls Sie in der MRM-Domäne eine Eingabenachricht auch in eine Ausgabenachricht umwandeln möchten, können Sie hierfür entweder den Rechen- oder Zuordnungsknoten verwenden. Der Zuordnungsknoten kann die erforderliche Aktion interpretieren, da er das Format beider Nachrichten kennt. Die Inhaltshilfe im ESQL-Modul für den Rechenknoten kann ebenfalls die Nachrichtendefinitionen für diese Nachrichten verwenden. Falls sich die Nachrichten nicht in demselben Namespace befinden, müssen Sie den Rechenknoten verwenden.
Anmerkung: Content Assist kann mit Nachrichtenverweisen arbeiten, wenn Sie einen Projektverweis vom Projekt mit der ESQL zum Projekt mit der Nachrichtengruppe einrichten. Informationen zum Einrichten eines Projektverweises finden Sie unter Projektverweise.

Wenn sich die Ein- und Ausgabenachrichten nicht in der MRM-Domäne befinden, müssen Sie den Rechenknoten verwenden und die Nachrichtenstruktur selbst angeben.

Unlike-Parser

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.

Beim Kopieren von Baumstrukturen zwischen Like-Parsern möchten Sie möglicherweise auch das Nachrichtenformat des Zielparsers festlegen. Wenn eine Nachrichtengruppe beispielsweise mit XML- und CWF-Formaten definiert wurde, sind zum Kopieren eines XML-Eingabedatenstroms zum MRM-Parser und zum Festlegen dieses Parsers für die Ausgabe im CWF-Format die folgenden Befehle erforderlich:
-- 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';	
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac11610_