Panoramica dei moduli ESQL
Un modulo è una sequenza di dichiarazioni che definiscono le variabili e la relativa inizializzazione ed una sequenza di dichiarazioni di routine secondaria (funzione e procedura) che definiscono un funzionamento specifico per un nodo del flusso di messaggi.
Un modulo deve cominciare con un'istruzione CREATE node_type MODULE e terminare con un'istruzione END MODULE . node_type deve essere COMPUTE, DATABASE, DATABASEEVENT o FILTER. Per i nodi DatabaseInput , il tipo_nodo richiesto è DATABASEEVENT. Per i nodi Compute, Databasee Filter , il tipo_nodo richiesto è uguale al nodo. Ad esempio, è necessario utilizzare COMPUTE tipo_nodo nei moduli ESQL per i nodi Compute . Per i nodi Compute, Database e Filter , il punto di ingresso del codice ESQL è la funzione denominata MAIN, che ha ambito MODULE. I moduli ESQL per nodi DatabaseInput non contengono la funzione MAIN, ma contengono tre procedure denominate READEVENTS, BUILDMESSAGE e ENDEVENT. Per ulteriori informazioni su queste tre procedure, consultare Configurazione di un nodo DatabaseInput.
Ogni modulo è identificato da un nome che segue CREATE node_type MODULE. Il nome può essere stato creato
automaticamente con un valore predefinito, che può essere modificato, oppure
può essere creato dall'utente. Il nome viene gestito in modo non sensibile al maiuscolo / minuscolo (ovvero, l'uso del nome con qualsiasi combinazione di lettere maiuscole e minuscole corrisponde alla dichiarazione). Ciò è in contrasto con i nomi che si dichiarano per gli schemi, le costanti, le variabili e le etichette, che vengono gestiti in modo sensibile al maiuscolo / minuscolo e che è necessario specificare esattamente come sono stati dichiarati.
È necessario creare il codice per un modulo in un file ESQL con suffisso .esql. Tale file deve essere creato nello stesso schema broker del nodo che lo indica. Deve esistere un modulo del tipo corretto per ciascun nodo corrispondente; il modulo è specifico per tale nodo e non può essere utilizzato da nessun altro nodo.
Quando si crea un file ESQL (o si completa un'attività che ne crea uno), si indica il progetto di integrazione e lo schema del broker con cui il file è associato e si specifica un nome per il file.
All'interno del file ESQL, il nome di ciascun modulo è determinato dal valore della proprietà corrispondente del nodo del flusso di messaggi. Ad esempio, la proprietà Modulo ESQL per il nodo Compute specifica il nome del modulo nel file ESQL per quel nodo. Il valore predefinito per tale proprietà è il nome del nodo. È possibile specificare un nome diverso, ma è necessario verificare che il valore della proprietà ed il nome del modulo che fornisce la funzione richiesta siano uguali.
Per i nodi Compute, Databasee Filter , il modulo deve contenere la funzione MAIN, che è il punto di ingresso del modulo. Questa funzione viene inclusa automaticamente se il modulo viene creato per l'utente. All'interno di MAIN, è possibile codificare ESQL in modo da configurare il funzionamento del nodo. Se si include ESQL all'interno del modulo che dichiara le variabili, le costanti, le funzioni e le procedure, tali elementi sono solo di ambito locale e possono essere utilizzati all'interno di questo singolo modulo.
Per nodi DatabaseInput , è necessario che il modulo contenga le tre procedure READEVENTS, BUILDMESSAGE e ENDEVENT. Queste procedure vengono incluse automaticamente, insieme ai commenti per descrivere la procedura, se il modulo viene creato per l'utente. All'interno delle tre procedure, è possibile codificare ESQL per configurare il funzionamento del nodo, consultare Configurazione di un nodo DatabaseInput. Se si include ESQL all'interno del modulo che dichiara le variabili, le costanti, le funzioni e le procedure, tali elementi sono solo di ambito locale e possono essere utilizzati all'interno di questo singolo modulo.
Se si desidera riutilizzare costanti, funzioni o procedure ESQL, è necessario dichiararle al livello dello schema broker. È quindi possibile fare riferimento a queste costanti, funzioni o procedure da qualsiasi risorsa all'interno di tale schema del broker, nello stesso o in un altro progetto. Se si desidera utilizzare tale tecnica, immettere il percorso completo della procedura oppure includere un'istruzione PATH che imposta il qualificatore. L'istruzione PATH deve essere codificata nello stesso file ESQL, ma non all'interno di MODULE.