In ognuno dei task che fino ad ora ho descritto è presente la sezione
Expression. In questo post parleremo proprio di questa importante feature di Integration Services. Le Expression sono strumenti che permettono di impostare dinamicamente le proprietà del task in cui vengono valutate. Per fare un parallelismo l’equivalente si otteneva anche con i DTS tramite i task
Dynamic Properties. Le differenze che saltano all’occhio sono:
- Con le
expression è possibile impostare vere e proprie espressioni complesse, con tanto di utilizzo di variabili, funzioni, conversioni di tipi..
- Le
expression sono riferite solo e soltanto al task a cui appartengonoSoprattutto per la seconda motivazione la leggibilità aumenta nella versione di SQL Server 2005. Perché ad ogni oggetto appartengono le proprie espressioni, impostate sulle specifiche proprietà. In DTS il dynamic properties appariva al contrario tutt’altro che chiaro e leggibile, almeno per quanto riguarda la mia esperienza
Una volta impostata l’espressione (e volendo testata) essa viene valutata ed eseguita a
runtime con il valore che le variabili eventualmente presenti assumono in quel preciso momento (Attenzione ad utilizzare il corretto scope nella dichiarazione delle variabili, altrimenti si rischia di ottenere valori inaspettati all’esecuzione dell’espressione!!
).
Ecco come appare una sezione expression, nell’esempio un
Execute SQL Task:
Clickando sul tasto
si apre la seguente pagina:
Nella colonna
property vi è l’elenco delle proprietà del task in cui ci si trova. E’ necessario selezionarne una prima di poter definire l’espressione di valorizzazione. Nella seconda colonna vi è l’espressione. Per aprire l’editor clickare sul tasto
.
Sulla sinistra abbiamo l’elenco delle variabili di sistema e quelle utente (si distinguono dal namespace
System:: oppure
User::), sulla destra abbiamo l’elenco delle funzioni possibili sulle variabili (dalle numeriche, alle stringhe, alle funzioni sulle date, ai controlli sui NULL, ecc..), in basso vi è lo spazio su cui scrivere l’espressione e ancora più sotto troviamo uno spazio in cui l’espressione può essere testata, tramite il pulsante
Evaluate Expression.
N.B. E’ possibile eseguire
drag & drop di tutte le variabili e le funzioni, dalla rispettiva area verso il campo di composizione dell’espressione. Le funzioni, quando trascinate, scrivono anche gli eventuali parametri da passare.
N.B. Alcune note su come scrivere le expression:
-
il carattere @ indica la variabile -
i caratteri [ e ] delimitano la variabile-
indicare il namespace nella rappresentazione della variabile (es. @[User::Param1])-
il + è operatore sia di somma che di concatenazione, in base al tipo di dato delle variabili-
se una variabile è di tipo non stringa è necessario utilizzare il casting (es. (DT_STR,3,1252)@[User::Param1], dove DT_STR è String, 3 è la lunghezza, 1252 è il codepage) Insomma, abbiamo visto che le expression rendono veramente dinamico il nostro pacchetto. Sono semplici, anche se il loro linguaggio non ha nulla a che vedere con i linguaggi conosciuti sul framework.
Alla prossima