Nachrichtenformat ändern

Mit Hilfe des Computeknotens 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;

Diese Anweisung 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.XMLNS.Data.Account = InputRoot.XMLNS.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 Compute- oder den Mapping-Knoten verwenden. Der Mapping-Knoten kann die erforderliche Aktion interpretieren, da er das Format beider Nachrichten kennt. Die Inhaltshilfe im ESQL-Modul für den Computeknoten kann ebenfalls die Nachrichtendefinitionen für diese Nachrichten verwenden. Falls sich die Nachrichten nicht in demselben Namespace befinden, müssen Sie den Computeknoten verwenden.

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 Computeknoten 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 werden 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.XMLNS.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 näher qualifizieren, um den Umfang der kopierten Baumstruktur einzuschränken.

Seien Sie vorsichtig, wenn Sie Informationen aus Eingabenachrichten in Ausgabenachrichten kopieren, die sich in anderen Domänen befinden. Sie können ESQL so codieren, 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 sollten Sie auch das Nachrichtenformat des Zielparsers festlegen. Wenn eine Nachrichtengruppe beispielsweise mit XMLNS- und CWF-Formaten definiert wurde, sind zum Kopieren eines XMLNS-Eingabedatenstroms zum MRM-Parser und zum Festlegen dieses Parsers für die Generierung im CWF-Format die folgenden Befehle erforderlich:
-- Copy message to the output, moving from XMLNS to MRM domains
SET OutputRoot.MRM = InputRoot.XMLNS.rootElement;
		
-- 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 | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:18

ac11610_