Script Engine

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

Script Engine

Previous pageReturn to chapter overviewNext page

Il Data Engine Script Engine ScriptEngine_16 mette a disposizione dell'utente le potenzialità di Windows PowerShellTM. In particolare, consente di automatizzare una serie di operazioni mediante script, realizzabili in una UI dedicata.

 

warning

L'utilizzo di uno Script Engine richiede l'installazione di Windows PowerShellTM sul client corrente.

 

Uno Script Engine può interagire sia con il sistema operativo sia con la piattaforma IrionEDM per

interrogare oggetti di sistema,

creare, cancellare, spostare, copiare o rinominare cartelle e file,

produrre output strutturati (e.g. file html o xml),

acquisire, trasformare e trasferire dati da sorgenti esterne o altri oggetti del Package,

richiamare e utilizzare programmi esterni (e.g. Microsoft Excel®),

utilizzare servizi Web,

comunicare con siti FTP.

 

warning

Si consiglia l'uso dello Script Engine in caso IrionEDM non disponga di altri metodi per eseguire l'operazione desiderata. Solo le funzionalità native della piattaforma garantiscono esecuzioni ottimizzate.

 

Gli aspetti definitori di uno Script Engine sono configurabili mediante i tab:

Script, consente di specificare lo script con cui automatizzare le operazioni desiderate;

Columns, espone l'elenco delle colonne attese in output.

 

Il tab Script ScriptEdit16 è un editor di testo per la scrittura di istruzioni PowerShell, agevolata da una IntelliSense (CTRL + spazio) dedicata. Essa espone l'elenco dei principali comandi disponibili, quali:

commandlet (cmdlet), funzioni shell, variabili e parametri nativi di Windows PowerShell,

cmdlet propri di IrionEDM.

 

I cmdlet nativi sono particolari librerie di funzioni, messe a disposizione da Windows PowerShell, per:

manipolare oggetti, file o cartelle,

ottenere informazioni di sistema,

esportare/importare dati e file da diverse sorgenti,

interagire con programmi esterni,

interrogare servizi web e siti FTP.

In generale si tratta di programmi eseguibili, che richiedono uno o più parametri in input per caratterizzare l'azione da svolgere.

Due particolari cmdlet nativi posso facilitare la progettazione e la scrittura di script:

get-command, privo di parametri in input, consente di visualizzare la lista di tutti i cmdlet disponibili;

get-help, espone la guida di utilizzo di un altro cmdlet (e.g. descrizione, sintassi, parametri ed esempio d'uso), mediante la seguente sintassi: get-help cmdlet-name -detailed.

Per ulteriori informazioni su cmdlet, funzioni, variabili e parametri nativi di Windows PowerShell si rimanda alla documentazione dedicata.

 

I cmdlet propri di IrionEDM consentono di:

utilizzare dataset di un Package come sorgenti dati con cui comporre script di PowerShell;

richiamare funzioni e procedure definite mediante Sript Module,

inviare e-mail in modo automatizzato,

interrogare e manipolare file Excel.

Per ulteriori dettagli sull'utilizzo, la sintassi e i parametri in input di questi cmdlet, si rimanda al paragrafo I Commandlet di IrionEDM.

 

Il tab Script dispone di alcune ulteriori funzionalità, attivabili mediante pulsanti presenti nei ribbon.

Nel gruppo Execution ci sono, in particolare:

Run RunPreview16, esegue lo Script Engine e restituisce l'output completo in forma tabellare;

Preview Text RunText16, nella tendina Local Scripts, esegue lo script e mostra in output un'anteprima del risultato, simulando la console di Windows PowerShell;

Preview QueryPreview16, consente di mostrare/nascondere l'anteprima dell'output.

Nel gruppo Query sono presenti:

Check Check16, controlla la sintassi dello script;

Show SQL ShowSQL_16, consente di mostrare/nascondere il listato dello script.

Nel gruppo SQL Test sono presenti i pulsanti:

Comment commentHS16e Uncomment uncommentHS16, permettono di commentare/scommentare righe di script;

Outdent IndentDecrease16 e Indent IndentIncrease16, per gestire le indentazioni;

Add Region AddRegion16, aggiunge una region all'interno del listato dello script.

Nei ribbon, gruppo Clipboard, sono inoltre presenti i pulsanti per tagliare, copiare, incollare, cancellare parti dello script.

 

L'esecuzione Run Text di uno Script Engine espone un'anteprima dell'output, simulando la console di Windows PowerShell. I campi, che vengono mostrati in output, dipendono dai file di configurazione nativi di PowerShell.

 

L'esecuzione Run di uno Script Engine si occupa della corretta mappatura degli oggetti PowerShell, potenzialmente disomogenei, che sono restituiti dallo script. Inoltre espone i risultati, opportunamente tipizzati, in forma tabellare, consentendo eventuali raggruppamenti e filtri sui dati in output. Pertanto, l'output di ogni esecuzione Run è una dataset, caratterizzato da una propria Column List.

 

info

In qualità di dataset, ogni Script Engine può essere richiamato da altri oggetti del Package o integrato nel Model di un Book.

 

Il tab Columns, come l'omonimo tab di ogni Data Link e Data Engine, espone l'elenco delle colonne attese in output. Tuttavia lo Script Engine ha un modo proprio di popolare la Column List.

All'atto di creazione di ogni Script Engine, la Column List risulta vuota e l'output di una qualsiasi esecuzione Run restituisce tutti i campi disponibili, non apportando alcuna modifica al tab Columns.

Per popolare la Column List, è necessario premere il pulsante Get Actual GetActualColumns16, presente nel gruppo Columns dei ribbon. Esso forza un'esecuzione Run dello Script Engine, per la corretta mappatura e tipizzazione degli oggetti PowerShell nel dataset in output. Al termine di tale esecuzione si apre automaticamente il Columns Wizard. Questa maschera mostra l'elenco di tutti le colonne del dataset in output. Ciascun record di questa lista è caratterizzato dai campi:

Name, nome dell'oggetto PowerShell in output secondo la semantica di PowerShell;

Object type, tipo dell'oggetto PowerShell in output;

Property type, tipo dell'attributo di un oggetto PowerShell in output;

Data type, tipo del dato in output secondo la semantica di SQL Server;

Data size e Scale, attributi propri del Data type impostato;

Description, eventuale descrizione dell'oggetto PowerShell corrente da integrare nella documentazione del Package.

Inoltre è possibile raggruppare tali record secondo ciascuno dei campi elencati, trascinando il campo desiderato al di sopra della lista, mediante drag & drop.

 

info

All'apertura del Columns wizard, i campi risultano già raggruppati per Object type.

 

Per selezionare quali campi si desidera visualizzare nella Column List, è sufficiente attivare il flag corrispondente. Mediante il pulsante Ok è possibile confermare le proprie scelte e chiudere il Columns wizard. A questo punto la Column List risulta compilata ed è possibile modificarla e/o integrarla con ulteriori Metadata Columns, in modo analogo a qualsiasi altro Data Link e Data Engine.

 

warning

La Metadata Column MissingColumnBehaviour (provider Properties) restituisce sempre il valore FillWithNull, indipendentemente dalle impostazioni della corrispondente proprietà nella Property Grid. Questo comportamento anomalo consente di gestire in modo ottimale l'eventuale disomogeneità degli oggetti PowerShell in output.

 

Affinché il risultato della compilazione della Column List sia applicato correttamente, è necessario impostare la proprietà UnexpectedColumns, presente nella Property Grid (tasto F4), a Ignore.

 

warning

A differenza di altri oggetti del Package, il valore predefinito della proprietà Unexpected Columns è Read.

 

Lo Script Engine dispone di ulteriori proprietà di configurazione non esposte direttamente nella corrispondente UI. Per gestirle è possibile utilizzare il visualizzatore della Property Grid (tasto F4).

Le principali property avanzate di uno Script Engine sono:

NonTerminatingError, permette di gestire eventuali errori di esecuzioni di uno script. In particolare può terminare l'esecuzione, registrare o ignorare l'errore.

DataLoad, consente di specificare il motore di caricamento dei dati. In particolare è possibile scegliere tra il motore nativo di IrionEDM (Default) ed il DataReader di ADO.NET.

 

APPROFONDIMENTI E ARGOMENTI CORRELATI

& Elaborazione dei dati: i Data Engine

& I Commandlet di IrionEDM