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 in der ESQL-Ressourcendateien des Nachrichtenflusses ESQL codieren. Sie können die Komponenten der Nachricht mit ESQL-Ausdrücken sowohl erstellen als auch ändern, und Sie können auf Elemente der Eingabenachricht und der Daten einer externen Datenbank verweisen. Ein Ausdruck kann arithmetische Operatoren, Textoperatoren (z. B. Verkettungen), logische Operatoren und andere integrierte Funktionen verwenden.
Mit dem Rechenknoten können folgende Aktionen ausgeführt werden:
Sie definieren die ESQL-Anweisungen in einem Modul, das diesem Knoten in der ESQL-Datei (.esql) zugeordnet ist, die diesem Nachrichtenfluss zugewiesen ist. Sie müssen diese Datei erstellen, um die Definition des Nachrichtenflusses abzuschließen.
Der Rechenknoten wird jetzt in der Workbench durch folgendes Symbol dargestellt:
Die nachfolgenden Beispiele erläutern die Verwendung dieses Knotens:
Angenommen, Sie möchten zu Prüfzwecken in einem Nachrichtenfluss jedem eingehenden Auftrag eine eindeutige Kennung zuweisen. Vom Rechenknoten wird seine Eingabenachricht nicht geändert; er erstellt eine neue, geänderte Kopie der Nachricht als Ausgabenachricht. Mit Hilfe des Rechenknotens können sie eine eindeutige Kennung für Ihren Auftrag in die Ausgabenachricht einsetzen, 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 Abschluss der Konfiguration auf Übernehmen. Dadurch werden die Änderungen am Rechenknoten vorgenommen, und der Eigenschaftendialog bleibt geöffnet. 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 ausgewählte Wert wird für die Datenbanktabellen implementiert, die von Ihnen hinzugefügt wurden: Sie können für die einzelnen Tabellen keinen anderen Wert 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 Fehler 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.
Codieren Sie ESQL-Anweisungen, um das Verhalten des Rechenknotens anzupassen. Sie können beispielsweise festlegen, dass er unter Verwendung einer Eingabenachricht oder eines Datenbankinhalts (unverändert oder bearbeitet) neue Ausgabenachrichten oder Daten erstellen soll. Sie können z. B. einen Wert in der Eingabenachricht ändern, indem Sie einen Wert aus einer Datenbank hinzufügen und das Ergebnis in einem Feld in der Ausgabenachricht speichern.
Codieren Sie die gewünschten ESQL-Anweisungen in einer ESQL-Datei, die dem Nachrichtenfluss zugeordnet ist, in den Sie diese Instanz des Rechenknotens eingefügt 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-Abschnitt, 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 Sie anschließend im Kontextmenü die Option 'ESQL öffnen' aus. 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 Module des Rechenknotens 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 Entwurfsansicht 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 mit Ausnahme der Prozeduraufrufe und Definitionen (siehe unten) genau dieses Gerüst erstellen. Sie können den Standardnamen ä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 doppelten Anführungszeichen an.
Fügen Sie Ihre eigene ESQL zum Anpassen dieses Knotens nach der Anweisung hinter CREATE FUNCTION und vor RETURN TRUE hinzu. Sie können die beiden im Gerüst enthaltenen Aufrufe der Prozeduren 'CopyEntireMessage' und 'CopyMessageHeaders'.
Diese Prozeduren, die nach der Funktion 'Main' definiert sind, bieten häufig verwendete Funktionen, die bei der Bearbeitung von Nachrichten hilfreich sein können. Die Aufrufe im Gerüst sind auskommentiert; wenn Sie die Prozedur verwenden möchten, müssen Sie die Kommentarzeichen entfernen. Wenn Sie eine Prozedur nicht verwenden möchten, entfernen Sie sowohl den Aufruf und als auch die Definition der Prozedur aus dem Modul.
In früheren Releases wurden die von diesen Prozeduren ausgeführten Funktionen über die entsprechenden Optionsfelder des Rechenknotens im Eigenschaftendialog aufgerufen.
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.
Diese Eigenschaft muss festgelegt werden, damit das benötigte Format der Ausgabenachricht richtig wiedergegeben wird. 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.
In der folgenden Tabelle werden die Optionen erläutert.
Modus | Beschreibung: |
---|---|
Message (Nachricht, Standardwert) | Die Nachricht wird vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
LocalEnvironment (Lokale Umgebung) | Die Nachrichtenbaumstruktur 'LocalEnvironment' wird vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
LocalEnvironment And Message (Lokale Umgebung und Nachricht) | Die Nachrichtenbaumstruktur 'LocalEnvironment' und die Nachricht werden vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
Exception (Ausnahmebedingung) | Die Ausnahmeliste wird vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
Exception And Message (Ausnahme und Nachricht) | Die Ausnahmeliste und die Nachricht werden vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
Exception and LocalEnvironment (Ausnahmebedingung und Lokale Umgebung) | Die Ausnahmeliste und 'LocalEnvironment' werden vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
All (Alle) | Die Nachricht, Ausnahmeliste und 'LocalEnvironment' werden vom Rechenknoten wie im Knoten geändert generiert oder übergeben. |
Da der Rechenknoten sowohl über eine Eingabe- als auch eine Ausgabenachricht verfügt, können Sie mit Hilfe von ESQL auf Felder in beiden Nachrichten verweisen. Sie können auch mit InputLocalEnvironment und OutputLocalEnvironment, mit InputExceptionList und OutputExceptionList sowie mit den Hauptteilen der Eingabe- und 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 überprü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 Eingabeterminal, 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 | Standard | 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 für den Knoten nur eine Datenquelle 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 zur Eingabe ausgewählt haben. |
ESQL-Modul | Ja | Nein | Compute | Der Name des Moduls in der ESQL-Datei, die die Anweisungen zum Ausführen für die Datenbank sowie für die Ein- und Ausgabenachrichten enthält. |
Rechenmodus | Ja | Nein | Message | Folgende Möglichkeiten stehen zur Auswahl:
|
Warnungen als Fehler behandeln | Ja | Nein | Nicht ausgewählt | SQL-Datenbankwarnungen als Fehler behandeln. Wenn Sie das Markierungsfeld 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 Markierungsfeld aktivieren, wird der Vorgang ausgeführt. |
In der nachfolgenden Tabelle werden die Auswertungseigenschaften des Rechenknotens beschrieben.
Eigenschaft | M | C | Standard | Beschreibung: |
---|---|---|---|---|
Auswerten | Ja | Ja | Keine | Gibt an, ob eine Auswertung stattfindet. Gültige Werte sind Keine, Inhalt und Wert, Inhalt und Übernehmen. |
Aktion bei Fehler | Ja | Nein | Ausnahmebedingung | Gibt an, welche Maßnahme beim Auftreten eines Auswertungsfehlers ergriffen wird. 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. Die Standardaktion (ausgewähltes Markierungsfeld) besteht darin, dass alle Wertvorgaben in die Auswertung eingeschlossen werden. |
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 | Standard | 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 | Standard | Beschreibung: |
---|---|---|---|---|
XMLNSC Compact Parser für XMLNS-Domäne verwenden | Ja | Nicht ausgewählt | Nein | ![]() ![]() |
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 | Standard | Beschreibung: |
---|---|---|---|---|
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |