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 comenzar por la sentencia CREATE tipo_nodo MODULE y finalizar por una sentencia END MODULE. El tipo_nodo debe ser COMPUTE, DATABASE o FILTER. El punto de entrada del código ESQL es la función denominada MAIN, que tiene el ámbito MODULE.
Cada módulo se identifica mediante un nombre como el siguiente CREATE tipo_nodo MODULE. El nombre se puede crear automáticamente con un valor por omisión que puede modificar o puede crearlo usted mismo. El nombre se maneja sin distinguir entre mayúsculas y minúsculas, esto es, puede utilizar el nombre con cualquier combinación de letras mayúsculas o 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 como si fueran sensibles a las mayúsculas y minúsculas y que debe especificar exactamente tal y 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 flujo de mensajes y el esquema del intermediario con el que está asociado el archivo y especifica también el nombre del 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. El valor por omisión 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.
El módulo debe contener la función MAIN, que es el punto de entrada para el módulo. Este se incluye automáticamente si se crea el módulo 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.
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 los mismos 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.