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.

I seguenti argomenti contengono ulteriori informazioni sui tipi e sulle funzioni ESQL:

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 PROCEDURE o FUNCTION.
    • 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.
Nota: l'elemento di destinazione di una trasformazione ESQL personalizzata viene creato e viene fornito il valore restituito dalla procedura ESQL associata. Se la procedura ESQL restituisce ESQL NULL, la trasformazione crea un elemento con un valore vuoto. Se non si desidera creare un elemento, è possibile aggiungere un'espressione condizionale.