Functions

Navigation:  Il Package: lavorazione dei dati > Arricchimento del Package >

Functions

Previous pageReturn to chapter overviewNext page

Le Functions Function 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.

 

warning

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 Check16 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.

 

info

Le Functions possono essere incapsulate, richiamandosi a vicenda nel proprio query editor.

 

ex

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

 

warning

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.