Wenn Sie eine Nachrichtenzuordnung aus einer früheren Version von WebSphere Message Broker in eine grafische Datenzuordnung umwandeln, müssen Sie gegebenenfalls zusätzliche Aufgaben ausführen, bevor Sie Ihre grafische Datenzuordnung in einer Messaging-Lösung verwenden können.
Die Funktion im Editor für grafische Datenzuordnungen hat eine dedizierte Laufzeitausführungsengine, wohingegen sich die Nachrichtenzuordnung auf ESQL-Code konzentriert.
Bei der Vorbereitung einer Nachrichtenzuordnung für die Konvertierung in eine grafische Datenzuordnung müssen folgende Punkte berücksichtigt werden:
Die Laufzeitumgebung stellt eine dedizierte Java-basierte Laufzeitausführungsengine für grafische Datenzuordnungen bereit. Damit kann die Zuordnungsausführung die Vorteile der vollständigen Unterstützung für XPath 2.0- und Java-JIT-Optimierung nutzen und eine höhere Zuverlässigkeit bieten.
Eine untergeordnete grafische Datenzuordnung kann nur über eine übergeordnete grafische Datenzuordnung in einem Mapping-Knoten aufgerufen werden.
Obwohl eine ESQL-Anweisung 'CALL' in einem Compute-Knoten für den Aufruf einer untergeordneten Nachrichtenzuordnung verwendet werden kann, wird diese Funktion für grafische Datenzuordnungen nicht unterstützt. Wenn Sie eine Nachrichtenzuordnung, die auf diese Weise verwendet wird, konvertieren, schlägt die ESQL-Anweisung 'CALL' fehl, und es wird berichtet, dass eine Funktion nicht aufgelöst werden kann. Dieses Problem kann behoben werden, indem der Compute-Knoten durch einen neuen Mapping-Knoten ersetzt wird, der eine neue grafische Datenzuordnung hat, die die konvertierte untergeordnete Zuordnung aufrufen kann.
In ESQL ist ein spezielle nullwert definiert, der sich von einem Leerwert unterscheidet. Wenn Sie einem benannten Element NULL zuweisen oder das Element aus dem zurückgegebenen Nullwert einer aufgerufenen ESQL-Funktion setzen, löschen Sie das Element aus der Baumstruktur.
In einer grafischen Datenzuordnng erzeugt die ESQL NULL ein leeres Element oder ein leeres Element mit definiertem Attribut 'xsi:nil', wenn das Element im Modell als auf null festlegbar (nillable) definiert ist. Deshalb kann die Ausgabe der grafischen Datenzuordnung in manchen Fällen unerwartete leere Elemente enthalten, die zu Verarbeitungsproblemen führen können, darunter auch zur Nichteinhaltung des XML-Schemas. Solche Probleme treten gewöhnlich auf, wenn eine benutzerdefinierte ESQL-Funktion aufgerufen wird, die in manchen Fällen ESQL NULL zurückgibt. Zur Vermeidung dieser Probleme fügen Sie der angepassten Transformation eine Bedingung hinzu, die verhindert, dass die Transformation aufgerufen wird, wenn NULL zurückgegeben wird.
Die einfache Format TRIM-BOTH (Quelle) wird konvertiert.
In diesem Abschnitt wird beschrieben, wie verschiedene Transformationstasks implementiert werden, die im vorherigen Editor für Nachrichtenzuordnung mit anderen Konstrukten implementiert wurden. Diese Liste ist nicht vollständig, kann aber bei der Ausarbeitung von Konzepten und bei der Entwicklung grafischer Datenzuordnungen hilfreich sein.
Verwenden Sie die Transformation 'Assign' (Zuweisen), um Literalwerte in Ausgabeelementen festzulegen. Die Transformation 'Assign' verwendet eine Zeichenfolgedarstellung, die dem relevanten Ausgabeelement zugewiesen wird und deshalb dem Typ dieses Elements entsprechend formatiert werden muss. Der Eigenschaftswert darf nicht in Anführungszeichen gesetzt werden, weil alle Anführungszeichen als Teil des Zeichenfolgewerts übergeben werden. Zur Bereitstellung eines explizit typisierten Werts verwenden Sie die Cast-Transformation xs:<Typ> ohne Eingabeverbindung.
Sie konnten Ausdrücke im Editor für Nachrichtenzuordnung erstellen, die eine Datentypänderung implizieren und die zugrundeliegenden Zeichenfolgewertdarstellung verwenden. Der Editor für grafische Datenzuordnungen verwendet die Syntax für XPath-Ausdrücke und erzwingt eine strikte Typisierung. Das Testen eines Elements mit dem Typ 'Boolean' für den Zeichenfolgeliteralwert "true" führt beispielsweise zu einer Typausnahme.
Nachrichtenzuordnungen stellen Funktionen bereit, die XPath-Funktionen gleichen und in der Laufzeitumgebung von funktional entsprechenden ESQL-Funktionen implementiert werden. Einige dieser ESQL-Funktionen haben eine weniger strenge Werttypisierung als die, die in der XPath-Spezifikation der Funktion definiert ist. Die Zuordnungsfunktion für grafische Daten stellt konforme XPath-Funktionen bereit. Deshalb kann eine aus einer konvertierten Zuordnung erstellte grafische Datenzuordnung wegen ungültiger Werte oder Problemen mit der Typumwandlung zur Laufzeit fehlschlagen. Insbesondere die funktional entsprechenden ESQL-Funktionen können einen Standardwert bereitstellen, wenn der Parameterwert leer ist. Zur Behebung solcher Probleme fügen Sie Bedingungen hinzu, die verhindern, dass die für die XPath-Funktionsparameter ungültigen Werte an die Funktion übergeben werden.
Nachrichtenzuordnungen erfordern keine Explizität vom Benutzer beim Zugriff auf Textwerte mit gemischtem Inhalt über ein Element eines komplexen Typ in einem Bedingungsausdruck. Die Zuordnungsfunktion für grafische Daten basiert auf der XPath-Standardsyntax und setzt die explizite Verwendung von "/text()" voraus, wenn der Textwert mit gemischtem Inhalt verwendet werden soll. Deshalb kann die Zuordnung einer konvertierten Nachricht mit einem Bedingungsausdruck, der Textwerte mit gemischtem Inhalt referenziert, fehlschlagen, bis dem Pfadausdruck die fehlende Angabe "/text()" hinzugefügt wird.
Der Editor für Nachrichtenzuordnungen hat die Typisierung von Eingaben für untergeordnete Zuordnungen nicht ordnungsgemäß geprüft. Benutzer konnten den normalen Elementpfadwert einer Eingabe für eine untergeordnete Zuordnung bearbeiten und einen nicht typisierten Literalwert angeben. Die Auswertung der Zuordnungsfunktion für grafische Daten setzt voraus, dass alle Eingaben für untergeordnete Zuordnungen mit einem entsprechend typisierten Eingabeelement verbunden sind.
Einige Transformationen setzen die Verwendung des "For each index"-Zählwerts voraus, Die Nachrichtenzuordnung in Version 6.1 und in Version 7.0 hat die Funktion msgmap:occurrence für den Abruf der aktuellen Schleifenanzahl bereitgestellt. Die Zuordnungsfunktion für grafische Daten stellt eine Zählvariable For loop bereit, die eine entsprechende Funktion bietet. Diese Variable hat das feste Namensformat $<For each Name des primären Eingabeelements>-index und kann mit der Inhaltshilfe Strg-Leerzeichen in der entsprechenden "ForEach transform"-Anzeige mit dem Ausdruck für Filtereingeschaften or in der Inhaltshilfe in allen verschachteteln Transformationen abgerufen werden.