Il DataLink DataBox Link è un oggetto del Package che consente di:
✓ interrogare tabelle e richiamare viste o stored procedure presenti in una DataBox;
✓ agire direttamente sulla definizione di una specifica DataBox.
Gli elementi definitori di un DataBox Link sono impostabili nei tab:
✓ Query, in cui specificare gli estremi per la connessione ad una specifica DataBox e le operazioni da eseguire su di essa;
✓ Columns, espone, con modalità analoghe ad ogni Data Link, la Column List.
Nel tab Query è possibile specificare:
✓ una Connection, ossia una DataShelf Reference con cui collegarsi al DataShelf di riferimento;
✓ una DataBox Key, ossia l'identificativo univoco della DataBox d'interesse riportato nella corrispondente DataBox List;
✓ una DataBox Action, ossia l'operazione da eseguire al momento in cui si accede ad una DataBox e al corrispondente DataShelf;
✓ un listato SQL, con cui interrogare gli oggetti componenti la DataBox;
✓ un Iterator, ossia un dataset su cui eventualmente iterare e/o condizionare le istruzioni SQL.
La scelta della DataShelf Reference da attribuire al campo Connection viene guidata dalla relativa drop-down, che espone tutte le connessioni a DataShelf attualmente disponibili.
Le DataBox Action vengono eseguite sulla DataBox, identificata dalla relativa DataBox Key, prima delle istruzioni SQL. Le azioni disponibili sono:
✓ Create, crea una nuova DataBox all’interno del DataShelf referenziato, assumendo che non esista un'altra DataBox con la DataBox Key specificata;
✓ Drop: elimina una DataBox nel DataShelf referenziato, supponendo che esista una DataBox con la DataBox Key specificata;
✓ Drop If Exists: elimina una DataBox dopo averne verificato la sua esistenza nel DataShelf referenziato;
✓ Open, accede ad una DataBox per aggiornare dati e/o oggetti in essa contenuti, assumendo che esista una DataBox con la DataBox Key specificata;
✓ Open Or Create, accede ad una DataBox per aggiornare dati e/o oggetti in essa contenuti o ne forza la creazione in caso non esista una DataBox con la DataBox Key specificata;
✓ Replace, elimina e ricrea una DataBox nel DataShelf referenziato, assumendo che esista una DataBox con la DataBox Key specificata;
✓ Replace Or Create, elimina e ricrea una DataBox nel DataShelf referenziato o ne forza la creazione in caso non esista una DataBox con la DataBox Key specificata;
L'azione Create può generare errore in caso la DataBox su cui agisce esista. Analogamente le azioni Drop, Open e Replace possono generare errore in caso la DataBox non esista. Pertanto è bene impostare ogni DataBox Action con attenzione. |
Le DataBox Action che prevedono l'eliminazione di una DataBox, richiedono che la proprietà AllowNonEmptyDrop, presente nel visualizzatore della Property Grid (tasto F4), sia impostata a True. |
Il listato SQL con cui interrogare una DataBox può essere scritto:
✓ manualmente nell'editor di testo del tab Query, con l'aiuto di IntelliSense e strumenti di syntax check;
✓ manualmente mediante il Query Builder, accessibile con il pulsante Builder ;
✓ graficamente, mediante il SQL Visual Editor, accessibile disattivando il Visual Mode con il pulsante .
Ogni DataBox Link accetta istruzioni di tipo:
✓ DQL per interrogare i dati;
✓ DML per inserire, modificare e cancellare dati;
✓ DDL per creare, modificare ed eliminare tabelle, viste e stored procedure.
Inoltre ogni istruzione SQL può richiamare oggetti del Package corrente tramite la sintassi caratteristica dei Backlink:
[IrionDQ].[Package].[ObjectName]
Se le istruzioni SQL non restituiscono una tabella in output, il DataBox Link restituisce il seguente messaggio di errore: "The Column List is empty". Tuttavia questa particolare eccezione non compromette l'esito dell'esecuzione. |
Le modalità di definizione di un Iterator e la sintassi, con cui richiamarne i campi, sono analoghe a quelle descritte per gli iteratori di un Database Link. In presenza di Iterator, i campi DataBox Key e DataBox Action espongono nelle relative drop-down anche i campi dell'iteratore.
In assenza di Iterator la drop-down relativa al campo DataBox Key risulta disabilitata. |
Nel campo DataBoxKey sono visibili le DataBox del DataShelf referenziato.
Il DataBox Link dispone di ulteriori proprietà di configurazione non esposte direttamente nella corrispondente UI, raggiungibili mediante il visualizzatore della Property Grid (tasto F4).
Le principali property avanzate di un DataBox Link sono:
✓ AllowNonEmptyDrop consente di abilitare/disabilitare l'eliminazione di DataBox non vuote, tramite apposita DataBox Action;
✓ DataMapping permette di velocizzare l’esecuzione dell’istruzione T-SQL, in particolari condizioni.
La proprietà DataMapping può assumere i seguenti valori:
✓ Disabled, il sistema materializza i dati sul Working DB;
✓ Auto, il motore di esecuzione tenta di eseguire l’operazione nel modo più performante, se non è possibile scala a quello meno performante;
✓ Enabled (a partire da Irion EDM 2016 Update 11), il motore di esecuzione accede direttamente al contenuto della DataBox creando una vista sui dati interrogati. Se l’operazione non è possibile viene restituito un errore.
Il DataMapping può essere molto utile in caso si interroghino dataset voluminosi. |
Se la proprietà Data Mapping è valorizzata a Disabled:
✓l’output del DataBox Link viene trasferito in una tabella temporanea del database Working di IrionEDM.
✓eventuali indici definiti sulle tabelle di una DataBox non vengono utilizzati nella generazione degli output, essendo fisicamente determinati a livello di Working DB.
Se la proprietà è valorizzata a Auto, in ordine di performance decrescente, viene utilizzata la modalità DataMapping, SameServerOptimization, DataReader (materializzazione su database Working)