Il Rule Repository

Navigation:  I Viewer: esposizione dei dati > Il Viewer Rule Editor >

Il Rule Repository

Previous pageReturn to chapter overviewNext page

Ogni Rule Editor necessita di un Rule Repository sottostante, dal quale attingere le regole esposte e su cui salvarne le modifiche apportate.

Formalmente, un Rule Repository è un insieme di oggetti relazionali presenti su un DB o un DataShelf e deve comporsi di almeno due tabelle:

la RuleTable, i cui record corrispondono a regole distinte;

la MetadataTable, contenente opportuni metadati per la definizione e la verbalizzazione delle regole.

 

La Rule Table deve contenere sempre i seguenti campi:

RuleNameColumn, identificativo univoco di un Rule;

RuleDefinitionColumn, XML contenente gli aspetti definitori di una regola (i.e. Conditions e Trigger Expression);

EnabledColumn, flag che indica se la Rule è abilitata.

 

Opzionalmente è possibile arricchire la Rule Table con ulteriori colonne, che consentono di:

dinamizzare il comportamento di alcune proprietà del Rule Editor, quali layout grafico, metadati a supporto dell’IntelliSense, sistema di verbalizzazione e modalità di esposizione degli esiti;

gestire il processo di approvazione delle regole e i loro ciclo vita (e.g. versione, utente responsabile, stato di validazione, data e ora dell’ultima modifica).

 

info

I nomi delle colonne (necessarie ed opzionali) di una Rule Table possono essere personalizzati dall'utente.

 

La Metadata Table può contenere:

il glossario dei termini per la verbalizzazione delle regole;

i metadati necessari a visualizzare l’IntelliSense in fase di modifica degli aspetti definitori di una regola;

i metadati necessari a realizzare la correzione automatica degli errori presenti sull’editor delle Conditions.

 

In particolare la Metadata Table deve sempre comporsi dei seguenti campi:

ObjName, nome dell’oggetto da mostrare nell’IntelliSense e/o verbalizzare;

ObjType, tipo di oggetto specificato nell’ObjectName;

Field, componente dell’oggetto da mostrare nell’IntelliSense e/o verbalizzare (e.g. nome del campo di un Data Link/Data Engine o parametro di una Function);

FType, eventuale tipo T-SQL del campo specificato in Field;

FSize, eventuale lunghezza del Field in base al FType;

FScale, eventuale precisione del Field in base al FType;

FNullable, booleano che indica se l’oggetto ammette il valore NULL;

FOrder, indice progressivo per l’ordinamento degli oggetti esposti dall’IntelliSense;

Verbalization, espressione in linguaggio naturale con cui verbalizzare l’oggetto.

 

Il campo ObjType può assumere i valori:

Table, in caso di Data Link o Data Engine del Package;

Function, in caso di Function del Package;

Output, in caso di Output Column da verbalizzare;

Subquery, in caso di query da verbalizzare;

Function Match, in caso di T-SQL Expression articolate da verbalizzare;

Domain, in caso di elementi di un dominio da verbalizzare.

 

I valori Output, Subquery, Function Match e Domain sono:

associati ad un ObjectName specifico, chiamato Extra;

utilizzati solo nella verbalizzazione delle regole.

 

Il campo Verbalization si compila in modo analogo alle regole di verbalizzazione del Business Dictionary di un Rule Engine.

 

Infine, è anche possibile specializzare IntelliSense e verbalizzazione a livello di singola regola, definendo la colonna opzionale RuleNameColumn. Essa contiene l'identificativo univoco della Rule, definito nella Rule Table.

 

warning

I nomi delle colonne necessarie di una Metadata Table non possono essere personalizzati dall'utente.