WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Nachrichtenformat ändern

Mithilfe des Compute-Knotens 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.

Beim Kopieren zwischen ungleichen Parsern kann es passieren, dass einige Attribute der ursprünglichen Nachricht verloren gehen. Damit auch wirklich jedes Attribut kopiert wird, sollten Sie die Nachricht auf denselben Parser kopieren.

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 Compute-Knoten kann ebenfalls die Nachrichtendefinitionen für diese Nachrichten verwenden. Falls sich die Nachrichten nicht in demselben Namespace befinden, müssen Sie den Compute-Knoten 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 Bibliotheksreferenzen hinzufügen und entfernen.

Wenn sich die Ein- und Ausgabenachrichten nicht in der MRM-Domäne befinden, müssen Sie den Compute-Knoten 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.DFDL.Data.Account = InputRoot.XMLNSC.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 schreiben möglicherweise einen ESQL-Code, der eine Nachrichtenstruktur oder einen Inhalt erstellt, die bzw. der nicht mit den Regeln des Parsers konform ist, der die Ausgabenachricht verarbeitet. 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 Unlike-Parsern ist es gegebenenfalls erforderlich, die Felder MessageSet, MessageType und MessageFormat im Ausgabeeigenschaftenordner anzugeben. Welche Felder angegeben werden müssen, ist vom Zielparser abhängig. Wenn der Zielparser beispielsweise MRM ist und die Nachrichtengruppe in einem Custom Wire Format (CWF) definiert ist, sind folgende Befehle erforderlich, um einen Nachrichtentext, der vom XMLNSC-Parser erstellt wurde, in einen Nachrichtentext zu kopieren, der zum MRM-Parser gehört:
-- Nachricht für Ausgabe kopieren, dabei von XMLNSC- in MRM-Domäne verschieben
SET OutputRoot.MRM = InputRoot.XMLNSC.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 | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:19:57


TaskthemaTaskthema | Version 8.0.0.5 | ac11610_