Le Functions 
 sono segmenti di codice, preimpostabile e riutilizzabile, costituiti dalla combinazione di più istruzioni T-SQL. In particolare, consentono di centralizzare la definizione di alcune operazioni custom, da richiamare in altri oggetti del Package, quali:
✓ la parsificazione e la formattazione di stringhe;
✓ la trasformazione e la normalizzazione di specifici record;
✓ il controllo della coerenza e dell'integrità dei dati;
✓ l'applicazione di formule di calcolo anche complesse.
Ogni Function può ricevere uno o più valori di input, detti parametri, ma restituire un solo valore in output, referenziato dallo specifico parametro @ReturnValue.
![]()
Il parametro @ReturnValue è preconfigurato dal sistema e non modificabile da UI.  | 
Gli elementi definitori di una Function sono impostabili nei tab:
✓ General
✓ Definition
✓ Dynamic Properties
Il tab General permette di impostare denominazione della Function ed eventuale descrizione.
Il tab Definition è costituito da:
✓ una griglia in cui specificare i parametri in input ed il loro formato;
✓ un query editor, dove istanziare, mediante istruzioni T-SQL, la funzione stessa.
La griglia che espone la lista dei parametri in input viene compilata manualmente ed è possibile aggiungere e/o cancellare record a piacere. Ogni record di tale tabella è caratterizzato dai seguenti campi.
Campo  | 
Descrizione  | 
|---|---|
Name  | 
Nome del parametro in input. Deve sempre iniziare con il carattere "@".  | 
DataType  | 
Il formato del dato (es. VarChar, Int, Decimal, ecc...)  | 
DataSize  | 
La lunghezza del dato in base al DataType impostato. Per esempio, nel caso di DataType Decimal, indica il numero massimo di cifre intere.  | 
Scale  | 
Nel caso particolare di DataType Decimal, indica il numero di cifre decimali visualizzate.  | 
Default  | 
Valore specifico che viene utilizzato in caso manchi il parametro in input.  | 
Description  | 
Eventuale descrizione del parametro, per integrare la documentazione relativa al Package.  | 
Nel query editor è possibile scrivere le istruzioni T-SQL desiderate, utilizzando i parametri di input (referenziati con il carattere "@"). Nel tab Home del Ribbon sono presenti anche alcune funzionalità di scrittura, quali copia e incolla (gruppo Clipboard), ed il tasto Check 
 per il controllo della sintassi (gruppo Query).  
Il risultato finale di tale codice T-SQL deve essere un unico valore. Esso viene salvato automaticamente, nel parametro di output @ReturnValue.
![]()
Le Functions possono essere incapsulate, richiamandosi a vicenda nel proprio query editor.  | 
![]()
ESEMPIO: DEFINIZIONE ED UTILIZZO DI UNA FUNCTIONS Supponiamo di avere 4 tabelle con i dati dei clienti di 4 aziende (Customer1, Customer2, Customer3 e Customer4). In ciascuna di queste tabelle esistono un campo LastName ed un campo Name. Le aziende vorrebbero che le loro tabelle Customer mostrassero un unico campo CustomerName contenente nome e cognome del cliente. Per ottenere tale risultato è possibile definire una Function da richiamare all'interno di opportuni Query Engine nel seguente modo: ✓Inizializzare una Function, denominata CustName, con parametri in input @CustomerName e @CustomerLastName; ✓Definire la Function, mediante la seguente istruzione T-SQL @CustomerName + ' ' + @CustomerLastName ✓Richiamare la Function all'interno di un Query Engine, mediante la seguente query SELECT c.*, CustomerName = CustName(c.Name,c.LastName) FROM Customer c  | 
![]()
Le Functions possono essere utilizzate solo negli oggetti del Package che lavorano su dati ad esso interni, quali Rule Engine e Query Engine.  | 
Il tab Dynamic Properties consente la definizione dinamica delle proprietà che definiscono la Function. In particolare, è possibile impostare:
✓ DataAuditability, per l'abilitazione della tracciabilità;
✓ DocumentationAuditability, per l'abilitazione della documentazione automatica;
✓ Expression, per la definizione dell'espressione che definisce la Function;
✓ ReturnValue, il valore di output.