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.

ESQL-Code für einen Knoten erstellen

Erstellen Sie ESQL-Code, um das Verhalten eines Compute-, Datenbank-, DatabaseInput- oder Filter-Knotens in einer ESQL-Datei anzupassen.

Bevor Sie beginnen:

In diesem Abschnitt wird vorausgesetzt, dass Sie bereits eine ESQL-Datei erstellt haben. Der Abschnitt ESQL-Datei erstellen enthält weitere Informationen hierzu.

Erstellen Sie in der ESQL-Datei ein Modul, das mit einem Knoten in Ihrem Nachrichtenfluss verknüpft ist. Ein Modul kann nur einem einzigen eines bestimmten Typs (Compute-, Datenbank-, DatabaseInput-oder Filter-Knoten) zugeordnet werden. Im Modul können Sie Funktionen und Prozeduren zusätzlich zu den übergebenen Anweisungen und Funktionen erstellen und verwenden. Sie können auch lokale Konstanten und Variablen erstellen.

Wenn Sie Konstanten, Funktionen oder Prozeduren auf Brokerschema-Ebene erstellt haben, können Sie auch im Modul darauf verweisen. Sie können Routinen auf einer Ebene definieren, auf der verschiedene Module sie verwenden können; dadurch können Sie Entwicklungszeit und Verwaltungsaufwand einsparen.

Gehen Sie wie folgt vor, um ESQL-Code für einen Knoten zu erstellen:

  1. Öffnen Sie den Nachrichtenfluss, der den Knoten enthält, für den ESQL-Code erstellt werden soll. Erweitern Sie in der Ansicht Brokerentwicklung die entsprechende Anwendung oder Bibliothek bzw. das entsprechende Nachrichtenbrokerprojekt, erweitern Sie den Nachrichtenordner 'Flüsse' und klicken Sie doppelt auf den Nachrichtenfluss.

    Der Nachrichtenfluss wird im Nachrichtenflusseditor geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf einen Compute-, Datenbank-, DatabaseInput- oder Filter-Knoten und klicken Sie dann auf ESQL öffnen. Die Standard-ESQL-Datei für diesen Nachrichtenfluss (Nachrichtenflussname.esql) wird in der Editoransicht geöffnet. Falls die Datei noch nicht vorhanden ist, wird sie erstellt und enthält am Ende ein Entwurfsmodul für diesen Knoten. Der genaue Inhalt ist vom Knotentyp abhängig.

    Wenn Sie die Datei bereits erstellt haben, wird sie in der Editoransicht geöffnet, und es wird ein neues Modul erstellt und hervorgehoben.

    Für einen Compute-Knoten wird folgendes Modul erstellt:

    CREATE COMPUTE MODULE Modulname
           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;

    Der Name des Moduls wird durch den Wert bestimmt, den Sie für die entsprechende Knoteneigenschaft angegeben haben. Der Standardname lautet Nachrichtenflussname_Knotentyp. Die Hauptfunktion enthält Aufrufe für zwei in der folgenden Liste beschriebene Prozeduren, die im Modul des Compute-Knotens, der auf die Hauptfunktion folgt, deklariert werden. Diese Aufrufe sind jedoch auskommentiert. Wenn Sie die von diesen Prozeduren bereitgestellte Funktion nutzen möchten, entfernen Sie die Kommentarzeichen aus den Zeilen, und fügen Sie die Zeilen an der entsprechenden Stelle in den ESQL-Code ein, der für die Hauptfunktion erstellt wird.

    CopyMessageHeaders
    Diese Prozedur durchsucht die Eingabenachricht nach Headern und kopiert diese in die Ausgabenachricht.
    CopyEntireMessage
    Diese Prozedur kopiert den gesamten Inhalt (einschl. Header) der Eingabenachricht in die Ausgabenachricht.

    Wenn Sie ein ESQL-Modul für einen Datenbank-Knoten erstellen, wird folgendes Modul erzeugt:

    CREATE DATABASE MODULE Modulname
           CREATE FUNCTION Main() RETURNS BOOLEAN
           BEGIN
                   RETURN TRUE; 
           END;
    END MODULE;

    Für einen DatabaseInput-Knoten enthält das Modul, das erstellt wird, drei Prozeduren: 'ReadEvents', 'BuildMessage' und 'EndEvent'. Jede dieser Prozeduren enthält Standardtext, der beschreibt, wie die Prozedur funktioniert. Weitere Informationen zum Konfigurieren von DatabaseInput-Knoten erhalten Sie im Abschnitt DatabaseInput-Knoten konfigurieren. Bei einem DatabaseInput-Knoten wird folgende erste Zeile des Moduls erstellt:

    CREATE DATABASEEVENT MODULE Modulname

    Bei einem Filter-Knoten ist das Modul mit dem Modul identisch, das für den Datenbank-Knoten erzeugt wurde, bis auf die erste Zeile, die wie folgt lautet:

    CREATE FILTER MODULE Modulname
  3. Fügen Sie dieser Datei ESQL hinzu, um das Verhalten des Knotens anzupassen.

    Beginnen Sie bei Compute-, Datenbank- oder Filter-Knoten damit, dass Sie in der Hauptfunktion (Main) ESQL-Anweisungen hinzufügen (nach der BEGIN-Anweisung und vor RETURN TRUE). Fügen Sie bei DatabaseInput-Knoten ESQL-Anweisungen in den Prozeduren 'ReadEvents', 'BuildMessage' und 'EndEvent' hinzu. Sie können im Modul DECLARE-Anweisungen hinzufügen, die nicht in der Hauptfunktion enthalten sind. Um eine neue Zeile in der Datei hinzuzufügen, drücken Sie die Eingabetaste.

    Damit Sie gültiges ESQL codieren können, zeigt der Editor als Hilfe eine Liste mit gültigen Anweisungen und Funktionen an der Position des Cursor. Klicken Sie auf Bearbeiten > Inhaltsassistent, um diesen Assistenten zu starten. Bei einigen Systemen ist auch die Tastenkombination Strg+Leertaste verwendbar. Blättern Sie durch die Liste, um die gewünschte Anweisung zu finden und zu markieren. Drücken Sie dann die Eingabetaste. Der entsprechende Code wird in Ihr Modul eingefügt.

    Der Inhaltsassistent steht in folgenden Bereichen zur Verfügung:
    • Anwendbare Schlüsselwörter, basierend auf Sprachsyntax
    • Codeblöcke, die zusammengehören, wie z. B. BEGIN END;
    • Konstanten, die Sie definiert haben, sowie Kennungen, Bezeichnungen, Funktionen und Prozeduren, die verwendet werden können. Routinen können in jedem Projekt eingesetzt werden, auch wenn diese im aktuellen Projekt nicht referenziert werden.
    • Datenbankschema und Tabellennamen nach dem Korrelationsnamen der Datenbank, Tabellenspaltennamen in INSERT-, UPDATE-, DELETE- und SELECT-Anweisungen und (in den meisten Fällen) die WHERE-Klauseln dieser Anweisungen.
    • Elemente der Nachrichtenfeldreferenz: Namen von Runtime-Domänen (Parser), Formtat des Typausdrucks, Kennungen des Namespace, Namespace-qualifiziertes Element und Attributnamen und Format des Indexausdrucks.
    • Inhalt des Ordners 'Eigenschaften' unter der Ausgabenachricht.
    • Für die Anweisung DECLARE NAMESPACE Ziel-Namespaces von Nachrichtengruppen und Schemanamen.

    Der Inhaltsassistent funktioniert nur, wenn das ESQL korrekt ausgewertet werden kann. Fehler wie z. B. ein fehlendes END nach einem BEGIN und andere unbestimmte Blockanweisungen führen zu Parser-Fehlern, wodurch der Inhaltsassistent keine Unterstützung bieten kann. Probieren Sie den Inhaltsassistenten um der Anweisung herum aus, bei der er nicht funktioniert, um die Position des Fehlers einzugrenzen. Sie können auch die ESQL-Datei speichern. Die Datei wird dadurch ausgewertet, und alle Syntaxfehler werden in die Ansicht 'Probleme' geschrieben. Sehen Sie sich die jeweiligen gemeldeten Fehler an, um die ESQL-Syntax zu korrigieren. Wenn Sie die meisten Anweisungen (z. B. Blockanweisungen) mithilfe des Inhaltsassistenten generieren, werden diese Anweisungen korrekt eingegeben, und es besteht ein geringeres Fehlerrisiko.

  4. Wenn Sie mit der Arbeit an diesem Modul fertig sind, speichern und schließen Sie die ESQL-Datei.

Sie können die ESQL-Datei auch direkt öffnen und das Modul in der Datei mit dem Editor erstellen:

  1. Öffnen Sie die ESQL-Datei, in der Sie das Modul erstellen möchten.
  2. Positionieren Sie in der Editoransicht den Zeiger auf einer neuen Zeile, und wählen Sie mithilfe des Inhaltsassistenten den passenden Modulentwurf für diesen Knotentyp aus (z. B. CREATE COMPUTE MODULE END MODULE;). Sie können den Text auch eingeben, müssen dabei aber sicherstellen, dass Ihre Eingabe mit dem oben gezeigten erforderlichen Entwurf übereinstimmt. Verwenden Sie den Inhaltsassistenten, da Sie dadurch zusätzliche Unterstützung erhalten: Es werden nur gültiges ESQL und passende Endanweisungen (z. B. END MODULE;) - sofern erforderlich - eingefügt.
  3. Vervollständigen Sie den Code des Moduls mit den erforderlichen Angaben.

Egal mit welcher Methode Sie die ESQL-Datei öffnen, sollten Sie bedenken, dass der Editor Funktionen bereitstellt, die Ihnen beim Schreiben des ESQL-Codes helfen. Dieser Abschnitt bezieht sich auf den Inhaltsassistenten; weitere Funktionen sind verfügbar. Informationen zu diesen Funktionen finden Sie unter ESQL-Editor.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:37


TaskthemaTaskthema | Version 8.0.0.5 | ak09033_