Export to DataShelf

Navigation:  Il Book: analisi e organizzazione dei dati > I Commands >

Export to DataShelf

Previous pageReturn to chapter overviewNext page

Il Command Export To DataShelf CommandExportDatashelf16 consente di esportare i dati presenti nel Model del Book corrente su un Datashelf di IrionEDM.

 

Gli  elementi definitori di questo Command sono impostabili mediante i seguenti riquadri, nella corrispondente UI:

General, visualizza le informazioni anagrafiche del command;

Parameter list, consente di valorizzare eventuali parametri di esecuzione;

Dynamic properties, permette di impostare dinamicamente le Properties del command;

Settings, permette la selezione di una Connection al DataShelf su cui esportare i dati;

 

info

Il pulsante Sample del ribbon, presente nel gruppo Query del tab Home, compila automaticamente la query nel working space destinato alle Dynamic Properties.

 

Il riquadro Settings contiene al suo interno un sotto riquadro DataShelf Settings, che permette di impostare le seguenti proprietà:

Connection, specifica una Connection di tipo DataShelf Reference per il collegamento al DataShelf su cui verranno esportati i dati. Il pulsante ArrowRight_16 apre la Connection selezionata in una nuova finestra;

Iterator, consente di scegliere un oggetto del Package corrente oppure una Custom Query su cui eventualmente iterare le istruzioni di export;

DataBox Key, specifica su quale DataBox verranno storicizzati i dati esportati;

DataBox Action, permette di scegliere quale azione compiere sulla DataBox specificata prima di eseguire l'esportazione.

 

Le modalità di definizione di un Iterator e la sintassi, con cui richiamarne i campi, sono analoghe a quelle descritte per gli iteratori di un Database Link.

In presenza di Iterator, il campo DataBox Key dispone di una specifica drop-down esponente tutti i campi presenti nell'iteratore. Viceversa, in caso il campo Iterator sia vuoto, è necessario specificare manualmente il nome della DataBox su cui storicizzare i dati esportati.

 

Le DataBox Action disponibili, esposte dalla relativa drop-down, sono:

Create, una nuova DataBox viene creata all’interno del corrispondente DataShelf. In caso esista un'altra DataBox con la stessa DataBox Key, il sistema restituisce errore;

Drop, la DataBox specificata viene eliminata. In caso essa non esista, il sistema restituisce errore;

Drop If Exists, dopo averne verificato l’esistenza della DataBox Key, la corrispondente DataBox viene eliminata. In caso essa non esiste il sistema non esegue alcuna azione;

Open, viene effettuato l'accesso alla DataBox desiderata, per aggiornare oggetti e dati in essa contenuti. In caso la DataBox non esista, il sistema restituisce errore;

Open Or Create, viene effettuato l'accesso alla DataBox desiderata o, in caso non esista, il sistema ne forza la creazione;

Replace, la DataBox specificata viene eliminata e ricreata. In caso essa non esista, il sistema restituisce errore;

Replace Or Create, la DataBox specificata viene eliminata e ricreata o, in caso non esista, il sistema ne forza la creazione.

 

LightBulb

Impostare una corretta DataBox Action può prevenire errori, in caso la DataBox sulla quale si vuole agire non esista.

 

Il flag Allow drop (for not empty DataBox), se attivo, consente di eseguire azioni di tipo Drop anche in presenza di DataBox non vuote.

 

Fuori dal sotto riquadro, le operazioni di export vengono specificate mediante istruzioni T-SQL nell'apposito tab SQL Script presente nella UI del Command. L'editor di testo ad esso relativo è dotato di IntelliSense e accetta istruzioni DQL (interrogazione dei dati), DML (inserimento e cancellazione dei dati) e DDL (creazione e modifica di oggetti). È possibile anche richiamare altri oggetti del Model mediante la seguente sintassi: [IrionDQ].[Model].[Nome tabella].

 

Le istruzioni di export possono anche essere definite in modo guidato, utilizzando l'apposito configuratore del tab Configuration.

Per impostarlo occorrono:

una o più tabella in Full Edit Mode sul Model, dette Source, da esportare;

una tabella di arrivo sul DB per ogni Source, detta Target.

 

Il tab Configuration mette a disposizione le seguenti opzioni di configurazione:

Table to Export, nome della tabella Source coinvolta nell’export;

Target, nome della corrispondente tabella Target;

Column Mapping, riquadro di impostazioni specifiche per l'export dei singoli campi della tabella Source.

 

Il riquadro Column Mapping consente di specificare:

Input, nome delle colonne da esportare nella tabella Source;

Target, nome delle corrispondenti colonne nella tabella Target.

 

L’opzione Input può essere valorizzata mediante:

il nome di uno dei campi della tabella Source;

il carattere speciale * che identifica tutti i campi della tabella Source;

una custom query sulle tabelle del Model del Book.

 

warning

In caso si utilizzi il carattere speciale * nell'opzione Input:

l’accesso all'editor per la definizione di custom query risulta disabilitato;

successive definizione puntuali dei campi della tabella Source sovrascrivono le impostazioni corrrenti del Column Mapping.

 

Il riquadro Column Mapping contiene due ulteriori opzioni:

Key permette di specificare quali colonne Input corrispondono ad una chiave primaria nella tabella Target;

KeyMode consente di specificare il tipo delle eventuali chiavi primarie sulla  tabella Target.

 

Il campo KeyMode è attivo solo per campi di tipo Key e può assumere i valori:

SameAsSource replica il valore della colonna Input nella colonna Target;

Auto assume che la colonna Target sia un campo IDENTITY.

 

In presenza di relazioni di tipo parent-child nel Model del Book, è possibile specializzare la impostazioni del Column Mapping mediante le opzioni:

ModelRelation specifica il nome della relazione di cui la tabella Source è "figlia", in modo che il sistema possa prestabilire l’ordine di esecuzione delle istruzioni;

UpdateForeignKeyMode permette al sistema di gestire opportunamente l'aggiornamento di eventuali chiavi esterne nella tabella Target.

 

info

In caso l'opzione ModelRelation non sia valorizzata, l’ordine di esecuzione delle istruzioni rispetta la sequenza delle tabelle inserite nel campo Table to Export.

 

L'opzione UpdateForeignKeyMode, in presenza di chiavi esterne, deve assumere i valori:

Cascade, in caso la colonna Target corrente sia una chiave esterna con vincolo di tipo CASCADE;

None, in caso la colonna Target corrente sia una chiave esterna con vincolo di tipo NO ACTION, SET DEFAULT o SET NULL.

 

Il tab Configuration dispone dell'ulteriore flag Align identity fields on Data Model. Se attivo, in caso di modifica di un campo IDENTITY sulla tabella Target, la tabella Source recepisce automaticamente l’aggiornamento.

 

Mediante il configuratore è possibile definire anche le seguenti opzioni avanzate per l'export:

Create table if not exist crea la tabella Target in caso non esista;

Generate INSERT statement genera un opportuno codice per l'accodamento dei record su ogni tabella Source;

Generate UPDATE statement genera un opportuno codice per l'aggiornamento dei record su ogni tabella Source;

Generate DELETE statement genera un opportuno codice per la cancellazione dei record su ogni tabella Source.

 

info

In assenza di transazioni esplicite, le istruzioni T-SQL sono eseguite nell’ambito di un’unica transazione di tipo COMMIT. Tale comportamento è analogo al Commit At End di un Export Book To DB.