Un módulo es una secuencia de declaraciones que define variables y su inicialización y una secuencia de declaraciones de subrutina (función y procedimiento) que definen un comportamiento específico para un nodo de flujo de mensajes.
Un módulo debe empezar por la sentencia CREATE tipo_nodo MODULE y finalizar por una sentencia END MODULE. El tipo_nodo debe ser COMPUTE, DATABASE, DATABASEEVENT o FILTER. Para nodos DatabaseInput, el tipo_nodo es DATABASEEVENT. Para nodos Compute, Database y Filter el tipo_nodo necesario es el mismo que el nodo. Por ejemplo, debe utilizar el tipo_nodo COMPUTE en módulos ESQL para nodos Compute. Para nodos Compute, Database y Filter, el punto de entrada del código ESQL es la función denominada MAIN, que tiene el ámbito MODULE. Los módulos ESQL para nodos DatabaseInput no contienen la función MAIN, pero contienen tres procedimientos denominados READEVENTS, BUILDMESSAGE y ENDEVENT. Para obtener más información sobre estos tres procedimientos, consulte Configuración de un nodo DatabaseInput.
Cada módulo se identifica mediante un nombre que sigue a CREATE tipo_nodo MODULE. El nombre se puede crear automáticamente con un valor predeterminado que puede modificar o puede crearlo usted mismo. El nombre se maneja sin distinguir entre mayúsculas y minúsculas (es decir, puede utilizar el nombre con cualquier combinación de letras mayúsculas y minúsculas que coincida con la declaración). Esto es diferente a los nombres que se declaran para esquemas, constantes, variables y etiquetas, que se manejan respetando las mayúsculas y minúsculas, y que debe especificar exactamente tal como los ha declarado.
Debe crear el código para un módulo de un archivo ESQL que tiene un sufijo .esql. Debe crear este archivo en el mismo esquema de intermediario que el nodo al que hace referencia. Debe haber un módulo del tipo correcto para cada nodo correspondiente y es específico a dicho nodo y ningún otro nodo puede utilizarlo.
Cuando crea un archivo ESQL (o completa una tarea que crea uno), indica el proyecto de Message Broker y el esquema del intermediario con el que está asociado el archivo y especifica un nombre de archivo.
En el archivo ESQL, el nombre de cada módulo se determina mediante el valor de la propiedad correspondiente del nodo de flujo de mensajes. Por ejemplo, la propiedad ESQL Module del nodo Compute especifica el nombre del módulo del nodo en el archivo ESQL para dicho nodo. El valor predeterminado de esta propiedad es el nombre del nodo. Puede especificar un nombre diferente pero debe asegurarse de que el valor de la propiedad y el nombre del módulo que proporciona la función necesaria sean los mismos.
Para nodos Compute, Database y Filter, el módulo debe contener la función MAIN, que es el punto de entrada para el módulo. Esta función se incluye automáticamente si el módulo se crea para usted. En MAIN, puede codificar ESQL de modo que se configure el comportamiento del nodo. Si incluye ESQL en el módulo que declara las variables, constantes, funciones y procedimientos, estos son de ámbito local solamente y se pueden utilizar en este módulo individual.
Para nodos DatabaseInput, el módulo debe contener los tres procedimientos READEVENTS, BUILDMESSAGE y ENDEVENT. Estos procedimientos se incluyen automáticamente, junto con los comentarios para describir el procedimiento, si el módulo se crea para usted. Dentro de los tres procedimientos, puede codificar ESQL para configurar el comportamiento del nodo; consulte Configuración de un nodo DatabaseInput. Si incluye ESQL en el módulo que declara las variables, constantes, funciones y procedimientos, estos son de ámbito local solamente y se pueden utilizar en este módulo individual.
Si desea volver a utilizar las constantes, funciones o procedimientos ESQL, debe declararlas a nivel del esquema del intermediario. A continuación, puede hacer referencia a estas constantes, funciones o procedimientos desde cualquier recurso de dicho esquema de intermediario en el mismo proyecto o en otro. Si desea utilizar esta técnica, puede limitar completamente el procedimiento o incluir la sentencia PATH que establece el calificador. La sentencia PATH debe estar codificada en el mismo archivo ESQL pero no en ningún MODULE.