Um módulo é uma seqüência de declarações que definem variáveis e sua inicialização e uma seqüência de declarações de sub-rotina (função e procedimento) que definem um comportamento específico para um nó do fluxo de mensagens.
Um módulo deve começar com a instrução CREATE node_type MODULE e terminar com uma instrução END MODULE.O node_type deve ser um de CALCULAR, BANCO DE DADOS ou FILTRO. O ponto de entrada do código ESQL é a função denominada MAIN de escopo MODULE.
Cada módulo é identificado por um nome que segue CREATE node_type MODULE. O nome deve ser criado para você com um valor padrão, que pode ser modificado ou é possível criá-lo você mesmo. O nome é manipulado em um caso sem distinção entre maiúsculas e minúsculas (isto é, utilize o nome com qualquer combinação de letras maiúsculas e minúsculas correspondente à declaração). Isso contrasta com os nomes declarados para esquemas, constantes, variáveis e rótulos, manipulados com distinção entre maiúsculas e minúsculas e que devem ser especificadas exatamente da forma declarada.
É necessário criar o código para um módulo em um arquivo ESQL que tenha um sufixo .esql. É necessário criar este arquivo no mesmo esquema do servidor intermediário ao qual o nó faz referência. Deve haver um módulo do tipo correto para cada nó correspondente e deve ser específico desse nó e não pode ser utilizado por nenhum outro nó.
Ao criar um arquivo ESQL (ou ao executar uma tarefa que crie um), você indica o projeto do fluxo de mensagens e o esquema do intermediário ao qual o arquivo está associado, bem como a especificação do nome para o arquivo.
No arquivo ESQL, o nome de cada módulo é determinado pelo valor da propriedade correspondente do nó do fluxo de mensagens. Por exemplo, a propriedade ESQL Module para o nó Compute especifica o nome do módulo do nó no arquivo ESQL. O valor padrão para esta propriedade é o nome do nó. Você pode especificar um nome diferente, mas deve assegurar que o valor da propriedade e o nome do módulo que fornece a função requerida sejam os mesmos.
O módulo deve conter a função MAIN, que é o ponto de entrada para o módulo. Isso será incluído automaticamente se o módulo for criado para você. No MAIN, você pode codificar ESQL para configurar o comportamento do nó. Se você incluir ESQL no módulo que declara variáveis, constantes, funções e procedimentos, eles serão apenas de escopo local e poderão ser utilizados nesse único módulo.
Se desejar reutilizar constantes, funções ou procedimentos ESQL, será necessário declará-los no nível de esquema do intermediário. Você pode, então, fazer referência a eles a partir de qualquer recurso nesse esquema de intermediário, no mesmo projeto ou em outro. Se desejar utilizar esta técnica, é necessário qualificar totalmente o procedimento ou incluir uma instrução PATH que defina o qualificador. A instrução PATH deve ser codificada no mesmo arquivo ESQL, mas não em qualquer MODULE.