Proprietà delle tabelle di un Model

Navigation:  Il Book: analisi e organizzazione dei dati > Logical Data Model >

Proprietà delle tabelle di un Model

Previous pageReturn to chapter overviewNext page

IrionEDM mette a disposizione dell'utente alcune proprietà con cui personalizzare il comportamento in output dei dataset presenti nel Model di un Book. Esse sono impostabili attraverso il visualizzatore delle Properties di ciascuna tabella.

 

info

Per visualizzare la Properties è necessario selezionare la tabella di interesse nel tab Model ed eventualmente premere F4 da tastiera, in caso non compaia automaticamente.

 

Le proprietà che possono essere impostate sulle tabelle di un Model sono:

AutoIncrementColumn permette di scegliere un campo numerico all'interno della tabella corrente dove esporre un numero progressivo che identifichi eventuali nuovi record;

AutoIncrementSeed imposta il valore iniziale, nel caso in cui è impostata la proprietà AutoIncrementColumn, in caso contrario ha valore -1;

AutoIncrementStep imposta l'incremento numerico rispetto all'ultimo valore inserito, nel caso in cui è impostata la proprietà AutoIncrementColumn, in caso contrario ha valore -1;

ChapterName identifica il Chapter a cui è associata la Tabella;

ComputedColumns permette di aggiungere una o più colonne calcolate record per record;

EditMode specifica possibilità e modalità di eventuali modifiche a video della tabella;

Entity consente di visualizzare e modificare il percorso completo dell'oggetto del package che origina la tabella del Model;

LoadInMemory consente di caricare nella memoria del client corrente i dati della tabella;

LookupColumns consente di aggiungere una o più colonne di lookup in presenza di una relazione tra tabelle;

Name permette di modificare l'etichetta della tabella;

StateLessColumns consente di impostare una o più colonne la cui modifica non alteri lo stato del record associato;

DataLoadMode definisce la modalità di accesso ai dati per ciascuna delle tabelle del Model.

 

Esistono tre diversi EditMode per tabelle del Model:

ReadOnly, vieta ogni modifica del dataset visualizzato in output;

Simple, permette di effettuare modifiche a video del dataset in output, in base alle impostazioni del Viewer che lo espone.

Full, consente di effettuare modifiche a video, analogamente alla modalità Simple, ma mantenendone traccia.

 

info

Nel Model di un Book è facile distinguere tabelle con differente EditMode mediante un simbolo visualizzato nel vertice superiore sinistro. In particolare:

le tabelle ReadOnly sono identificate da un lucchetto;

le tabelle Simple sono identificate da una matita su sfondo ocra;

le tabelle Full sono identificate da una matita su sfondo verde.

 

Inoltre, in caso di Full EditMode, il sistema genera automaticamente nuove tabelle che consentono di interrogare:

i record modificati (tabella _modified_NomeTabella);

i record aggiunti (tabella _added_NomeTabella);

i record cancellati (tabella _deleted_NomeTabella);

i record invariati (tabella _unchanged_NomeTabella).

Il sistema produce anche altre due tabelle speciali, le tabelle _all_NomeTabella e _full_NomeTabella. Esse contengono l'unione di tutti i record delle quattro tabelle di sistema precedenti, distinguendoli mediante i valori della colonna __State. Essa può assumere i valori:

M (modified),

A (added),

D (deleted),

U (unchanged).

 

error

Le tabelle aggiuntive dispongono, di norma, di un set di colonne aggiuntive create automaticamente per mantenere i valori precedenti alle modifiche effettuate (una colonna per ciascuno dei campi presenti nella tabella originale). Per questo motivo, è essenziale che il numero dei campi della tabella originale sia strettamente minore di 512, essendo 1024 il numero massimo di campi previsto da SQL Server per una tabella.

 

La variabile speciale @State restituisce il valore della colonna __State.

 

LightBulb

La colonna speciale __State è particolarmente utile quando occorre gestire in modo differenziato record invariati e record su cui è intervenuto l’utente.

La variabile speciale @State consente di visualizzare immediatamente lo stato di una riga della tabella originale del Model, definendo un'apposita Computed Column con il riferimento ad essa nella property Expression, senza la necessità di accedere alle tabelle speciali del Model sopra menzionate.

 

warning

La variabile @State non può essere utilizzata all’interno di uno statement SQL (e.g.: if @State = ‘U’ THEN ..); può solo essere utilizzata come unico costrutto all’interno della definizione della colonna calcolata.

 

La tabella _full_NomeTabella si distingue dalla tabella _all_NomeTabella, in quanto dispone un set di colonne aggiuntive. Ognuna di queste colonne mostra i valori originari dell'oggetto incluso nel Model a cui la tabella _full è associata. Esse possono essere richiamate con la sintassi _orig_NomeColonna.

Inoltre, per ogni tabella del Model il sistema crea un ulteriore colonna, denominata __InternalIdentifier, per rendere univoca l'identificazione di ciascun record.

 

ex

APPROFONDIMENTO: EDIT MODE E RELAZIONI TRA TABELLE

Per ogni relazione nel Model di un Book è possibile specificare le seguenti proprietà esposte dal visualizzatore della Property Grid contestuale alla relazione stessa:

Enforced permette di creare una chiave esterna sulla tabella child;

DeleteAction definisce un'azione automatica da eseguirsi sulla tabella child a seguito dell'eliminazione di record nella tabella parent;

UpdateAction specifica un'azione automatica da eseguirsi sulla tabella child a seguito di un aggiornamento di record nella tabella parent.

Queste proprietà sono efficaci solo nel caso in cui l'Edit Mode delle tabelle componenti la relazione sia Simple o Full.

Le proprietà DeleteAction e UpdateAction sono efficaci solo in caso la proprietà Enforced sia valorizzata a True. Inoltre, esse assumono i seguenti valori:

Cascade elimina o aggiorna, rispettivamente, i record della tabella child corrispondenti ai record eliminati/aggiornati nella tabella parent;

SetNull imposta a NULL i campi della tabella child associati a record, rispettivamente, eliminati o aggiornati nella tabella parent;

None non esegue nessuna azione sulla tabella child a seguito, rispettivamente, di un'eliminazione o aggiornamento di record nella tabella parent.

 

La property LoadInMemory accetta valori booleani:

True, la tabella viene caricata sul client corrente (valore di default);

False, la tabella rimane sul server in cui è istallato IrionEDM. In tal caso la tabella è esportabile attraverso il Book, ma nessun Viewer è in grado di esporla a video.

 

La property DataLoadMode permette di scegliere tra le seguenti opzioni:

Snapshot, i dati della tabella sono fisicamente rimappati sull'IsolData del Working DB;

View, la tabella è letta come vista e i dati non sono rimappati fisicamente.

 

warning

L'attivazione del DataLoadMode con opzione View prevede che esista e sia valorizzata una colonna denominata __InternalIdentifier, In questo caso, infatti, la tabella è letta come vista e pertanto IrionEDM non crea né gestisce automaticamente la colonna __InternalIdentifier.

 

 

Le ComputedColumns sono colonne opzionali che possono essere aggiunte ad una tabella del Model, mediante l'omonima proprietà.

Dal campo Computed Columns della Property Grid di una tabella è possibile accedere al ComputedColumn Collection Editor. Questo editor è suddiviso in due parti:

il riquadro Members espone l'elenco delle Computed Columns disponibili;

il riquadro Properties consente di impostare gli elementi definitori della Computed Column, selezionata nel riquadro Members.

 

I tasti Add e Remove, sotto il riquadro Members, consentono di aggiungere o rimuovere Computed Columns nell'elenco sovrastante.

 

Gli elementi definitori di una Computed Column, esposti nel riquadro Properties, sono descritti nella seguente tabella.

 

Proprietà

Descrizione

Name

Nome della Computed Column corrente.

Expression

Specifica la definizione della Computed Column per mezzo di una SQL expression.

 

Ogni Computed Column viene calcolata sui valori assunti da altri campi dello stesso record. In particolare essa si aggiorna in modo sincrono con i valori che referenzia.

 

La definizione di una LookupColumn richiede la presenza di una relazione tra due tabelle. Si tratta, infatti, di colonne opzionali che consentono di aggiungere alla tabella "figlio" una o più colonne presenti nella tabella "padre".

Dal campo Lookup Columns della Property Grid di una tabella è possibile accedere al LookupColumn Collection Editor. Questo editor è suddiviso in due parti:

il riquadro Members espone l'elenco delle Lookup Columns disponibili;

il riquadro Properties consente di impostare gli elementi definitori della Lookup Column, selezionata nel riquadro Members.

 

I tasti Add e Remove, sotto il riquadro Members, consentono di aggiungere o rimuovere Lookup Columns nell'elenco sovrastante.

 

Gli elementi definitori di una LookupColumn, esposti nel riquadro Properties, sono descritti nella seguente tabella.

 

Proprietà

Descrizione

Name

Nome della Lookup Column corrente.

RelationName

Specifica il nome della relazione tra tabella "padre" e tabella "figlio". Una specifica drop-down mostra la lista di tutte le relazioni disponibili per la tabella corrente.

ParentColumn

Colonna della tabella "padre" da aggiungere alla tabella "figlio".

 

Ogni Lookup Column è sincronizzata con la tabella "padre" a cui fa riferimento, in modo da percepire ogni eventuale modifica.

 

La definizione di una AutoIncrement Column richiede la presenza di un campo di tipo intero all'interno della tabella corrente. Su tale colonna il sistema registra un numero progressivo, per identificare ogni nuovo record aggiunto al dataset originario.

 

info

In caso la Autoincrement Column coincida con una Lookup Column, il progressivo viene attribuito sia alla tabella "padre" sia alla tabella "figlio".

 

Tre specifiche proprietà nelle Properties della tabella corrente consentono di veicolare la generazione di tale numero progressivo:

AutoIncrement Column, specifica il nome della colonna in cui registrare il progressivo;

AutoIncrement Seed, indica il valore di partenza;

AutoIncrement Step, specifica il valore di incremento.

 

info

I valori di default delle proprietà Autoincrement Step e Autoincrement Seed sono entrambi -1. In questo modo vengono creati progressivi negativi che agevolano l'identificazione di nuovi record aggiunti al dataset originario.

 

Le Stateless Column rappresentano colonne di supporto all’interno di un Data Entry, ossia campi che non richiedono un riallineamento in caso di modifica. In particolare esse sono efficaci solo in caso l’Edit Mode della tabella, su cui esse sono definite, è impostato a Full.

Le Stateless Column sono colonne opzionali che è possono essere aggiunte ad una tabella del Model:

accedendo all’omonima Collection;

specificandone il nome.

 

info

Per aggiungere due o più Stateless Columns nella relativa Collection occorre inserire nell’Editor dedicato i nomi dei rispettivi campi, separati da un a capo.

 

Eventuali aggiornamenti dei valori esposti da una Stateless Column:

non alterano lo __State del record corrente;

non generano, sulla tabella _full_ corrispondente, la relativa colonna _orig_.