WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Creación de ESQL para un nodo

Cree código ESQL para personalizar el comportamiento de un nodo Compute, Database, DatabaseInput o Filter en un archivo ESQL.

Antes de empezar:

En este tema se supone que ha creado un archivo ESQL. Para obtener más información, consulte Creación de un archivo ESQL.

En el archivo ESQL, cree un módulo que esté asociado a un nodo del flujo de mensajes. Un módulo se puede asociar con un solo nodo de un tipo determinado (Compute, Database, DatabaseInput o Filter). Dentro del módulo puede crear y utilizar funciones y procedimientos además de sentencias y funciones suministradas. También puede crear constantes y variables locales.

Si ha creado constantes, funciones o procedimientos en el nivel de esquema de intermediario, también puede hacer referencia a ellos en el módulo. Puede definir rutinas a un nivel en el que muchos módulos diferentes puedan utilizarlas, con lo cual se ahorrará tiempo de desarrollo y tareas de mantenimiento.

Para crear ESQL para un nodo, complete las tareas siguientes:

  1. Abra el flujo de mensajes que incluye el nodo para el que desea crear ESQL. En la Vista Desarrollo de intermediario, expanda la aplicación, biblioteca o proyecto de Message Broker apropiado, expanda la carpeta Flujos y luego efectúe una doble pulsación en el flujo de mensajes.

    El flujo de mensajes se abre en el editor de flujos de mensajes.

  2. Pulse con el botón derecho del ratón sobre un nodo Compute, Database, DatabaseInput o Filter, a continuación, pulse Abrir ESQL. El archivo ESQL predeterminado para este flujo de mensajes, nombre_flujo_mensajes.esql, se abre en la vista del editor. Si el archivo aún no existe, se crea, conteniendo un módulo de esqueleto para este nodo al final. El contenido exacto depende del tipo de nodo.

    Si ya ha creado el archivo, éste se abre en la vista de editor y se crea y se resalta un nuevo módulo.

    Se crea el módulo siguiente para un nodo Compute:

    CREATE COMPUTE MODULE nombre_módulo
           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;

    El nombre del módulo se determina mediante el valor que ha establecido para la propiedad de nodo correspondiente. El nombre predeterminado es nombre_flujo_mensajes_tipo_nodo. La función Main contiene llamadas a dos procedimientos (que se describen en la siguiente lista) que se declaran en el módulo de nodo Compute a continuación de la función Main. Estas llamadas están comentadas. Para incluir la función que proporcionan, elimine el comentario de las líneas y colóquelas en el punto adecuado de ESQL que crea para Main.

    CopyMessageHeaders
    Este procedimiento recorre en bucle las cabeceras contenidas en el mensaje de entrada y las copia en el mensaje de salida.
    CopyEntireMessage
    Este procedimiento copia todo el contenido del mensaje de entrada, incluidas las cabeceras, en el mensaje de salida.

    Si crea un módulo ESQL para un nodo Database, se crea el módulo siguiente:

    CREATE DATABASE MODULE nombre_módulo
           CREATE FUNCTION Main() RETURNS BOOLEAN
           BEGIN
                   RETURN TRUE; 
           END;
    END MODULE;

    Para un nodo DatabaseInput, el módulo que se crea contiene tres procedimientos, ReadEvents, BuildMessage y EndEvent. Cada uno de estos procedimientos contiene texto reutilizable, que describe los trabajos del procedimiento. Para obtener más información sobre cómo configurar los nodos DatabaseInput, consulte Configuración de un nodo DatabaseInput. Para un nodo DatabaseInput, se crea la primera línea del módulo:

    CREATE DATABASEEVENT MODULE nombre_módulo

    Para un nodo Filter, el módulo es idéntico al módulo que se crea para el nodo Database, excepto la primera línea, que dice:

    CREATE FILTER MODULE nombre_módulo
  3. Añada el ESQL a este archivo para personalizar el comportamiento del nodo.

    Para nodos Compute, Database o Filter, empiece añadiendo sentencias ESQL en la función Main (después de la sentencia BEGIN y antes de RETURN TRUE). Para nodos DatabaseInput, añada sentencias ESQL en los procedimientos ReadEvents, BuildMessage y EndEvent. Puede añadir sentencias DECLARE en el módulo que no estén contenidas en la función Main. Para añadir una línea nueva al archivo, pulse Intro.

    Para ayudarle a codificar ESQL válido, el editor muestra una lista de sentencias y funciones validas en el punto del cursor. Para iniciar esta ayuda, pulse Editar > Asistente de contenido. En algunos sistemas, puede utilizar la combinación de teclas Control+Espacio. Desplácese por la lista para encontrar y resaltar la sentencia o la función que desee y pulse Intro. El código apropiado se inserta en el módulo.

    Se proporciona asistencia de contenido para las áreas siguientes:
    • Palabras clave aplicables basadas en la sintaxis del idioma.
    • Bloques de código que aparecen juntos, por ejemplo, BEGIN END;.
    • Constantes que ha definido, identificadores, etiquetas, funciones y procedimientos que se pueden utilizar, donde las rutinas pueden estar en cualquier proyecto, incluso si el proyecto actual no hace referencia a las mismas.
    • Nombres de tablas y esquemas de base de datos después del nombre de correlación de base de datos, nombres de columnas de tablas en sentencias INSERT, UPDATE, DELETE y SELECT y, en la mayor parte de los casos, las cláusulas WHERE de dichas sentencias.
    • Elementos de referencia del campo de mensaje: nombres de dominio de tiempo de ejecución (analizador), identificadores de espacio de nombres, elemento calificado de espacio de nombres y nombres de atributos y formato de expresión de índice.
    • Contenido de la carpeta Propiedades bajo el mensaje de salida.
    • Para la sentencia DECLARE NAMESPACE, espacios de nombres de destino de los conjuntos de mensajes y nombres de esquemas.

    El asistente de contenido sólo funciona si ESQL se puede analizar correctamente. Los errores como, por ejemplo, que falte END después de BEGIN y otras sentencias de bloque sin finalizar generan errores del analizador y no se proporciona el asistente de contenido. Intente ejecutar el asistente de contenido en otras áreas alrededor de la sentencia en la que no funciona para aislar más el punto de error. Si no, también puede guardar el archivo ESQL ya que, al guardar el archivo, los errores de validación y todos los errores de sintaxis se graban en la vista Problemas. Consulte los informes de errores generados para comprender y corregir la sintaxis ESQL. Si utiliza el asistente de contenido para generar la mayor parte de las sentencias (por ejemplo, sentencias de bloque), estas sentencias se introducen correctamente y existe menos posibilidades de errores.

  4. Cuando haya terminado de trabajar con este módulo, guarde y cierre el archivo ESQL.

También puede abrir el archivo ESQL directamente y crear el módulo en ese archivo utilizando el editor:

  1. Abra el archivo ESQL en el que desea crear el módulo.
  2. En la vista del editor, coloque el cursor en una línea nueva y utilice el asistente de contenido para seleccionar el esqueleto de módulo adecuado para este tipo de nodo, por ejemplo, CREATE COMPUTE MODULE END MODULE;. También puede escribir en este texto, pero debe asegurarse de que lo que escriba se ajuste al esqueleto requerido, que se ha mostrado anteriormente. Utilice el asistente de contenido para obtener ayuda adicional insertando solamente ESQL válido e insertando sentencias END coincidentes (por ejemplo, END MODULE;) donde sean necesarias.
  3. Complete la codificación del módulo según corresponda.

Independientemente del método que utilice para abrir el archivo ESQL, tenga en cuenta que el editor proporciona funciones para ayudarle a codificar ESQL. En esta sección se hace referencia a la ayuda de contenido; hay otras funciones disponibles. Para obtener información acerca de estas funciones, consulte Editor ESQL.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:00


Tema de tareaTema de tarea | Versión 8.0.0.5 | ak09033_