ESQL personalizzato
Utilizzare la trasformazione ESQL personalizzata per richiamare il proprio codice ESQL da una mappa di dati grafici.
Nell' editor Associazione dati grafici, selezionare ESQL personalizzato dall'elenco Trasformazioni personalizzate . È quindi possibile utilizzare le proprietà di trasformazione per selezionare il codice ESQL memorizzato nello spazio di lavoro. Quando si seleziona l'instradamento ESQL, vengono popolate le colonne Nome e Tipo della tabella Parametri. È necessario, quindi, selezionare un elemento di input o un'espressione XPath nella colonna Valore per ciascun parametro. È possibile utilizzare l'assistente ai contenuti nella colonna Valore per assegnare l'elemento richiesto, il valore letterale o l'espressione XPath.
Il file ESQL che contiene il modulo ESQL di riferimento deve essere visibile perché l'associazione sia selezionabile. Verificare che i riferimenti dell'applicazione, della libreria o del progetto siano impostati per rendere il file ESQL accessibile alla mappa. Quando si distribuisce la mappa, accertarsi di aver distribuito anche il file ESQL e che Compila e risorse in linea non sia selezionata.
Requisiti per i moduli ESQL richiamati da una mappa di dati grafica
I seguenti requisiti si applicano a moduli ESQL richiamati da una mappa di dati grafici:
- La sintassi di una procedura ESQL viene mostrata in Istruzione CREATE PROCEDURE. Le procedure che è possibile richiamare da una trasformazione ESQL personalizzata in una mappa di dati grafici devono essere conformi ai seguenti requisiti:
- Sono consentiti solo i parametri IN
- È richiesto un RETURN
- RoutineType può essere
PROCEDUREoFUNCTION. - La procedura deve essere definita nell'ambito globale nel file ESQL, non in una istruzione CREATE MODULE. Ad esempio:
CREATE FUNCTION stringToBlob (IN field character) RETURNS BLOB BEGIN RETURN CAST(field AS BLOB CCSID 1208); END;
- Un tipo di dati di ritorno deve essere uno scalare semplice.
- Un tipo di dati del parametro di input deve essere un valore scalare semplice o un ESQL REFERENCE dove la variabile di riferimento soddisfa i seguenti criteri:
- La variabile di riferimento viene utilizzata per accedere solo all'elemento di input o ai discendenti dell'elemento di input.
- L'elemento di input e gli eventuali discendenti a cui si accede utilizzando la variabile di riferimento sono definiti nel modello del messaggio di input.
- L'elemento di input deve esistere, a meno che non vengano soddisfatte determinate condizioni; consultare la nota riportata di seguito. Se l'elemento di input non esiste, l'associazione ha esito negativo e riporta che l'input della procedura ESQL è del tipo di dati errato.
Se è possibile che l'elemento di input non esista, è possibile impedire che la procedura ESQL venga richiamata aggiungendo una condizione che utilizza
fn:exists(inputElementVariable). Se alcuni elementi di input facoltativi non esistono e il numero totale di elementi di input è 15 o inferiore, il nodo Mappatura inserisce un valore null invece di elementi mancanti. Se il numero totale di elementi di input è maggiore di 15 e mancano alcuni elementi di input, la procedura ESQL ha esito negativo.
- Un modulo ESQL senza input può essere utilizzato per assegnare un elemento di emissione.
- Ogni parametro di input per il modulo ESQL può essere ricavato da un elemento di input collegato alla trasformazione ESQL personalizzata o specificato come costante.
- ESQL non deve includere chiamate SQL a una origine dati. L' editor Associazione dati grafici fornisce funzioni per includere le operazioni del database nella mappa. Per ulteriori informazioni, consultare Associazione del contenuto del database.