Dieses Kapitel enthält folgende Abschnitte:
Erstellten Sie mit dem Rechenknoten mindestens eine neue Ausgabenachricht. Diese Ausgabenachrichten können durch das Ändern der Informationen aus der Eingabenachricht erstellt werden, die Ausgabenachrichten können aber auch mit Hilfe von neuen Informationen erstellt werden, die möglicherweise aus einer Datenbank stammen. Für die Erstellung der neuen Ausgabenachricht können Elemente der Eingabenachricht (z. B. Header, Headerfelder und Nachrichtendaten), die zugehörige Umgebung und die Ausnahmeliste verwendet werden.
Sie geben an, wie die neuen Nachrichten erstellt werden, indem Sie ESQL in der ESQL-Ressourcendatei des Nachrichtenflusses kodieren. Sie können die Komponenten der Nachricht unter Verwendung von ESQL-Ausdrücken sowohl erstellen als auch modifizieren sowie auf Elemente der Eingabenachricht und Daten aus einer externen Datenbank verweisen. Ein Ausdruck kann arithmetische Operatoren, Textoperatoren (z. B. Verkettung), logische Operatoren und andere integrierte Funktionen verwenden.
Mit dem Rechenknoten können Sie Folgendes ausführen:
Sie definieren die ESQL-Anweisungen in einem Modul, das mit diesem Knoten verknüpft ist, in der ESQL-Datei .esql) für diesen Nachrichtenfluss. Sie müssen diese Datei erstellen, um die Definition des Nachrichtenflusses abzuschließen.
Der Rechenknoten wird in der Workbench durch folgendes Symbol dargestellt:
Die nachfolgenden Beispiele erläutern die Verwendung dieses Knotens:
Stellen Sie sich einen Nachrichtenfluss vor, in dem Sie jedem Auftrag, den Sie empfangen, zu Prüfzwecken eine eindeutige ID vergeben möchten. Der Rechenknoten modifiziert seine Eingabenachricht nicht; er erstellt eine neue, modifizierte Kopie der Nachricht als Ausgabenachricht. Mit dem Rechenknoten fügen Sie Ihrem Auftrag in der Ausgabenachricht eine eindeutige ID hinzu, die von nachfolgenden Knoten im Nachrichtenfluss verwendet werden kann.
Wenn Sie eine Instanz des Rechenknotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren. Klicken Sie mit der rechten Maustaste in der Editoransicht auf den Knoten, und wählen Sie die Option Eigenschaften aus. Daraufhin werden die grundlegenden Eigenschaften des Knotens angezeigt.
Alle verbindlichen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind dort mit einem Sternchen gekennzeichnet.
Konfigurieren Sie den Rechenknoten wie folgt:
Klicken Sie nach beendeter Konfiguration auf Übernehmen, um Änderungen am Rechenknoten vorzunehmen, ohne das Dialogfeld mit den Eigenschaften zu schließen. Klicken Sie auf OK, um die Änderungen zu übernehmen und das Dialogfeld mit den Eigenschaften zu schließen. Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen und alle Änderungen zu verwerfen, die Sie an den Eigenschaften vorgenommen haben.
Gehen Sie folgendermaßen vor, um von diesem Knoten auf eine Datenbank zuzugreifen:
Auf z/OS-Systemen verwendet der Broker die vom Broker gestartete Task-ID oder die Benutzer-ID und das Kennwort, die im angepassten Datensatz <hlq>.SBIPPROC im mqsisetdbparms-Befehl 'JCL, BIPSDBP' angegeben wurden.
Der von Ihnen gewählte Wert wird für die Datenbanktabelle(n) implementiert, die Sie hinzugefügt haben: Sie können keine unterschiedlichen Werte für die einzelnen Tabellen auswählen.
Wenn Sie es aktivieren, behandelt der Knoten alle positiven Rückkehrcodes von der Datenbank als Fehler und generiert Ausnahmebedingungen auf dieselbe Art wie bei negativen oder schwerwiegenden Fehlern.
Wenn Sie das Kästchen nicht aktivieren, behandelt der Knoten Warnungen als normale Rückkehrcodes und gibt keine Ausnahmebedingung aus. Die höchstwertige Warnung, die ausgegeben werden kann, lautet nicht gefunden. Sie kann in den meisten Fällen als normaler Rückkehrcode sicher bearbeitet werden.
Wenn Sie es inaktivieren, müssen Sie ESQL einschließen, um nach allen Datenbankfehlern zu suchen, die eventuell nach jedem Datenbankaufruf (mit SQLCODE und SQLSTATE) zurückgegeben werden. Tritt ein Fehle auf, müssen Sie ihn im Nachrichtenfluss bearbeiten, um die Integrität des Brokers und der Datenbank zu gewährleisten: der Fehler wird ignoriert, wenn Sie ihn nicht über ihren eigenen Prozess bearbeiten, da Sie kein Aufrufen der Standardfehlerbehandlung durch den Broker ausgewählt haben. Beispiel: Sie können die ESQL-Anweisung THROW einschließen, um in diesem Knoten eine Ausnahmebedingung auszugeben, oder Sie generieren mit dem Ausnahmeknoten zu einem späteren Zeitpunkt im Nachrichtenfluss Ihre eigene Ausnahmebedingung.
Kodieren Sie ESQL-Anweisungen, um das Verhalten des Rechenknotens anzupassen. Sie können es beispielswiese so anpassen, dass unter Verwendung der Eingabenachricht, des Inhalts einer Datenbank (unverändert oder modifiziert) oder neuer Daten eine neue Ausgabenachricht der Nachrichten erstellt werden. Beispiel: Sie möchten einen Wert in der Eingabenachricht modifizieren, indem Sie einen Wert aus einer Datenbank hinzufügen. Das Ergebnis möchten Sie in einem Feld in der Ausgabenachricht speichern.
Kodieren Sie die ESQL-Anweisungen, die in einer ESQL-Datei stehen sollen, die mit dem Nachrichtenfluss verknüpft ist, in den Sie diese Instanz des Rechenknotens eingeschlossen haben. Die ESQL-Datei, deren Name standardmäßig <Nachrichtenflussname>.esql lautet, enthält ESQL für jeden Knoten im Nachrichtenfluss, der sie erfordert. Jeder Code-Anteil, der zu einem bestimmten Knoten gehört, wird als Modul bezeichnet.
Wenn für diesen Nachrichtenfluss nicht bereits eine ESQL-Datei vorhanden ist, klicken Sie mit der rechten Maustaste auf den Rechenknoten und wählen anschließend im Kontextmenü die Option ESQL öffnen. Daraufhin wird in der ESQL-Editoransicht eine neue ESQL-Datei erstellt und geöffnet.
Ist die Datei bereits vorhanden, klicken Sie neben der Eigenschaft ESQL-Modul auf die Schaltfläche Durchsuchen. Daraufhin wird das Dialogfeld zur Modulauswahl geöffnet, in dem die in den ESQL-Dateien festgelegten, verfügbaren Rechenknotenmodule aufgeführt werden, auf die dieser Nachrichtenfluss zugreifen kann (ESQL-Dateien können in anderen, abhängigen Projekten definiert werden). Wählen Sie das entsprechende Modul aus, und klicken Sie auf OK. Wenn keine geeigneten Module zur Verfügung stehen, ist diese Liste leer.
Falls das von Ihnen angegebene Modul nicht existiert, wird es für Sie erstellt und im Editor angezeigt. Sind die Datei und das Modul bereits vorhanden, positioniert der Editor die Datei und markiert das richtige Modul.
Bei Bedarf können Sie die entsprechende ESQL-Datei im Ressourcennavigator öffnen und diesen Knoten in der Modellstruktursicht auswählen.
Wenn für diesen Knoten das Gerüst eines Moduls in einer neuen oder bereits bestehenden ESQL-Datei erstellt wird, besteht es aus folgender ESQL. In diesem Beispiel wird der Standardname des Moduls verwendet:
CREATE COMPUTE MODULE <Nachrichtenflussname>_Compute CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN -- CALL CopyMessageHeaders(); -- CALL CopyEntireMessage(); RETURN TRUE; END; CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; CREATE PROCEDURE CopyEntireMessage() BEGIN SET OutputRoot = InputRoot; END; END MODULE;
DECLARE I INTEGER 1;durch
DECLARE I INTEGER; SET I=1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);durch
DECLARE J INTEGER; SET J=CARDINALITY(InputRoot.*[]);
Wenn Sie ein eigenes ESQL-Modul erstellen, müssen Sie das Gerüst mit Ausnahme für die Prozeduraufrufe und Definitionen (siehe nachfolgende Beschreibung) wie hier gezeigt erstellen. Sie können den Standardname ändern. Achten Sie jedoch darauf, dass der von Ihnen angegebene Name mit dem Namen der entsprechenden Knoteneigenschaft ESQL-Modul übereinstimmt. Wenn der Modulname ein oder mehrere Leerzeichen enthalten soll, geben Sie ihn unter der Eigenschaft ESQL-Modul in Anführungszeichen an.
Fügen Sie Ihre eigene ESQL zum Anpassen dieses Knotens nach der Anweisung hinter CREATE FUNCTION und vor RETURN TRUE hinzu. Mit den beiden im Gerüst enthaltenen Aufrufen können Sie die Prozeduren CopyEntireMessage und CopyMessageHeaders aufrufen.
Diese Prozeduren wurden nach FUNCTION MAIN definiert und stellen allgemeine Funktionen zur Verfügung, die Sie unter Umständen zum Bearbeiten von Nachrichten verwenden möchten. Die Aufrufe im Gerüst sind auskommentiert. Löschen Sie die Kommentarmarkierungen, wenn Sie die Prozeduren verwenden möchten. Wenn Sie keine Prozedur verwenden möchten, löschen Sie den Aufruf und die Prozedurdefinition im Modul.
In Vorgängerreleases wurden die von diesen Prozeduren ausgeführten Funktionen über den beiden entsprechenden Rechenknoten-Optionsfelder im Eigenschaftendialogfeld bereitgestellt.
Sie können eine ESQL-Datei auch mit den Optionen
erstellen.Wenn Sie die Option Rechenmodus auswählen, geben Sie an, ob die Komponenten Nachricht, LocalEnvironment (lokale Umgebung; früher angegeben als DestinationList) und Ausnahmeliste, die im Knoten generiert oder in der ankommenden Nachricht enthalten sind, standardmäßig von der Ausgabenachricht verwendet werden.
Diese Standardeinstellung wird verwendet, wenn die umgewandelte Nachricht bei erfolgreicher Verarbeitung im Knoten an das Ausgangsterminal geleitet wird. Die Standardeinstellung wird auch verwendet, wenn durch eine PROPAGATE-Anweisung nicht die Zusammensetzung der Ausgabenachricht angegeben wird.
Die Komponenten, die nicht in Ihrer Auswahl enthalten sind, werden unverändert weitergegeben; selbst wenn Sie diese Komponenten modifizieren, wird nur der Knoten aktualisiert.
Die Moduseinstellung wirkt sich nicht auf die Umgebungskomponente der Nachrichtenbaumstruktur aus. Ihr Inhalt, falls vorhanden, wird von diesem Knoten in der Ausgabenachricht weitergegeben.
Sie müssen diese Eigenschaft konfigurieren, um das erforderliche Format der Ausgabenachricht korrekt wiederzugeben. Wenn Sie eine Option auswählen (oder den Standardwert übernehmen), die nicht einen bestimmten Teil der Nachricht enthält, wird dieser Teil der Nachricht in keiner erstellten Ausgabenachricht eingeschlossen.
Die Optionen werden in der nachfolgenden Tabelle erläutert.
Modus | Beschreibung |
---|---|
Nachricht (Standardeinstellung) | Die Nachricht wird wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
LocalEnvironment | Die LocalEnvironment-Baumstruktur wird wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
LocalEnvironment und Nachricht | Die LocalEnvironment-Baumstruktur und die Nachricht werden wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
Ausnahme | Die Ausnahmeliste wird wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
Ausnahme und Nachricht | Die Ausnahmeliste und die Nachricht werden wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
Ausnahme und LocalEnvironment | Die Ausnahmeliste und die LocalEnvironment-Baumstruktur werden wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
Alle | Die Nachricht, die Ausnahmeliste und die LocalEnvironment-Baumstruktur werden wie im Rechenknoten modifiziert vom Knoten generiert oder weitergeleitet. |
Da der Rechenknoten über eine Eingabe- und eine Ausgabenachricht verfügt, können Sie mit ESQL auf Felder in beiden Nachrichten verweisen. Sie können also mit InputLocalEnvironment und OutputLocalEnvironment, InputExceptionList und OutputExceptionList sowie mit den Hauptteilen der Eingabe- und der Ausgabenachricht arbeiten.
Legen Sie die Auswertungseigenschaften fest, um zu definieren, wie die vom Rechenknoten erstellte Nachricht ausgewertet werden soll. Beachten Sie, dass diese Eigenschaften nicht die Auswertung der Eingabenachricht auslöst. Falls diese Auswertung erforderlich ist, wird davon ausgegangen, dass die Auswertung bereits durch den Empfangsknoten oder einen vorhergehenden Auswertungsknoten ausgeführt wurde.
Sie finden detaillierte Informationen hierzu unter Nachrichten prüfen und Eigenschaften der Gültigkeitsprüfung für Nachrichten in der MRM-Domäne.
In der nachfolgenden Tabelle werden die Terminals des Rechenknotens beschrieben.
Terminal | Beschreibung |
---|---|
Eingangsterminal | Das Eingangsterminal, das eine Nachricht zur Verarbeitung durch einen Knoten annimmt |
Fehlerterminal | Das Ausgabeterminal, an das die Eingabenachricht geleitet wird, wenn während der Berechnung eine unbearbeitete Ausnahmebedingung festgestellt wird. |
Ausgangsterminal | Das Ausgabeterminal, an das die umgewandelte Nachricht bei erfolgreicher Verarbeitung im Knoten geleitet wird. Die umgewandelte Nachricht kann auch durch eine PROPAGATE-Anweisung an dieses Terminal geleitet werden. |
Ausgangsterminal1 | Das erste alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal2 | Das zweite alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal3 | Das dritte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal4 | Das vierte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
In der nachfolgenden Tabelle werden die Knoteneigenschaften beschrieben. Die Spalte M zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen im Eigenschaftendialog, ob Sie einen Wert eingeben müssen, wenn kein Standardwert definiert ist). Die Spalte C zeigt an, ob die Eigenschaft konfigurierbar ist (Sie können den Wert ändern, wenn Sie der BAR-Datei den Nachrichtenfluss hinzufügen, um ihn einzusetzen).
In der nachfolgenden Tabelle werden die grundlegenden Eigenschaften des Rechenknotens beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Datenquelle | Nein | Ja | Der Name der ODBC-Datenquelle für die Datenbank mit den Tabellen, auf die Sie in der mit diesem Nachrichtenfluss verknüpften ESQL-Datei verweisen (wie in der Eigenschaft ESQL-Modul festgelegt). Sie können nur eine Datenquelle für den Knoten angeben. | |
Transaktion | Ja | Nein | Automatisch | Der Transaktionsmodus für den Knoten. Dieser kann Automatisch oder Festschreiben lauten. Er ist nur gültig, wenn Sie eine Datenbanktabelle für die Eingabe ausgewählt haben. |
ESQL-Modul | Ja | Nein | Rechenknoten | Der Name des Moduls in der ESQL-Datei, die die Anweisungen zum Ausführen gegen die Datenbank und Eingangs- und Ausgangsnachrichten enthält. |
Rechenmodus | Ja | Nein | Nachricht | Zur Auswahl stehen:
|
Warnungen als Fehler behandeln | Ja | Nein | Gelöscht | SQL-Datenbankwarnungen wie Fehler behandeln. Wenn Sie das Kontrollkästchen aktivieren, wird der Vorgang ausgeführt. |
Ausnahmebedingung für Datenbankfehler ausgeben | Ja | Nein | Ausgewählt | Datenbankfehler führen dazu, dass der Broker eine Ausnahmebedingung auslöst. Wenn Sie das Kontrollkästchen aktivieren, wird der Vorgang ausgeführt. |
In der nachfolgenden Tabelle werden die Auswertungseigenschaften des Rechenknotens beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Auswerten | Ja | Ja | Keine | Durchführung einer Auswertung. Gültige Werte sind Keine, Inhalt und Wert, Inhalt und Übernehmen. |
Aktion bei Fehler | Ja | Nein | Ausnahme | Aktion beim Auftreten eines Auswertungsfehlers. Diese Eigenschaft kann nur festgelegt werden, wenn Auswerten auf Inhalt oder Inhalt und Wert gesetzt wird. Gültige Werte sind Benutzertrace, Lokales Fehlerprotokoll, Ausnahmebedingung und Ausnahmeliste. |
Alle Wertvorgaben einschließen | Ja | Nein | Ausgewählt | Diese Eigenschaft kann nicht bearbeitet werden. Standardmäßig werden, wenn das Kontrollkästchen aktiviert ist, alle Wertvorgaben in die Auswertung eingeschlossen. |
Korrektur | Ja | Nein | Keine | Diese Eigenschaft kann nicht bearbeitet werden. Mindestkorrekturen werden zur Verfügung gestellt. Gültige Werte sind Keine und Vollständig. |
In der nachfolgenden Tabelle werden die Eigenschaften der allgemeinen Nachrichtenoptionen des MQAbrufknotens beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Zeitpunkt für Syntaxanalyse | Ja | Nein | Bei Bedarf | Durch diese Eigenschaft wird gesteuert, zu welchem Zeitpunkt eine Eingabenachricht syntaktisch analysiert wird.
Gültige Werte sind Bei Bedarf, Sofort und Vollständig. Der Abschnitt Bedarfsgerechte Syntaxanalyse enthält eine ausführliche Beschreibung dieser Eigenschaft. |
MQRFH2C Compact Parser für MQRFH2-Domäne verwenden | Nein | Nein | False (falsch) | Durch diese Eigenschaft wird gesteuert, ob der MQRFH2C Compact Parser anstelle des MQRFH2-Parsers für MQRFH2-Header verwendet wird. |
In der nachfolgenden Tabelle werden die XMLNSC-Parsereigenschaften für den Rechenknoten beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
XMLNSC Compact Parser für XMLNS-Domäne verwenden | Ja | Gelöscht | Nein | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Feststellen von Nachrichten in der XMLNS-Domäne zum Erstellen von Elementen in der Nachrichtenbaumstruktur verwendet wird. |
Residenter Modus für gemischten Inhalt | Ja | Nein | Keine | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Feststellen von gemischtem Text in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Gültige Werte sind Keine und Alle. Durch die Auswahl von Alle werden Elemente für gemischte Texte erstellt. Durch die Auswahl von Keine werden gemischte Texte ignoriert und keine Elemente erstellt. |
Residenter Modus für Kommentare | Ja | Nein | Keine | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Feststellen von Kommentaren in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Gültige Werte sind Keine und Alle. Durch die Auswahl von Alle werden Elemente für Kommentare erstellt. Durch die Auswahl von Keine werden Kommentare ignoriert und keine Elemente erstellt. |
Residenter Modus für Verarbeitungsanweisungen | Ja | Nein | Keine | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Feststellen von Verarbeitungsanweisungen in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Gültige Werte sind Keine und Alle. Durch die Auswahl von Alle werden Elemente für Verarbeitungsanweisungen erstellt. Durch die Auswahl von Keine werden Verarbeitungsanweisungen ignoriert und keine Elemente erstellt. |
In der nachfolgenden Tabelle werden die Beschreibungseigenschaften des Rechenknotens beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |