SQL Server ed ALM su database


Il blog di Alessandro Alpi
Archivio Posts
Anno 2018

Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Altri Task del Control Flow

In questo post parleremo dei seguneti task del control flow di Integration Services:
- Execute Process Task
- Execute Package Task
- File System Task
- FTP Task


Execute Process Task

L'Execute Process Task permette di eseguire applicazioni Windows o console. A differenza dell'omonimo presente nei DTS, questo task ha una migliore gestione dell'errore. Ad esempio, è possibile scrivere gli errori all'interno di una variabile del pacchetto per poi testarne il contenuto successivamente.
Come al solito l'editor che si presenta è suddiviso in sezioni, la prima delle quali è la General. In essa vi sono le informazioni generali del task, che non modificano il suo comportamento (nome, descrizione). La pagina più interessante è quella denominata Process. Al suo interno vi sono alcune proprietà da prendere in considerazione. RequiredFullFileName, se impostata a true, impone di immettere nella proprietà Executable il percorso completo dell'eseguibile. Se impostata a false permette di indicare nella Executable il nome semplice del file.
N.B. se si utilizza questo ultimo metodo è necessario che il file da eseguire sia residente in uno dei path definiti nella variabile di sistema PATH di Windows (nelle variabili d'ambiente).
Nella proprietà Executable non possono essere indicati parametri da passare all'eseguibile. Per questi vi è la proprietà Arguments.
Altra voce importante è WorkingDirectory, che permette di impostare la cartella dove lavora il file che andremo ad eseguire.
Poi troviamo due proprietà che consentono di rendere il task dinamico, e sono la StandardInputVariable, che permette di passare al pacchetto una variabile come argomento, StandardOutputVariable, che consente di catturare il risultato di ritorno del processo, e StandardErrorVariable, in cui viene scritto l'eventuale errore ritornato dal processo.

Infine vi sono altre proprietà di minore importanza, come la FailTaskIfReturnCodeIsNotSuccess, che impone al task di fallire se l'exit code è diverso da quello impostato nell'opzione SuccessValue, la TimeOut, che permette di impostare un numero di secondi per il timeout del processo (default a 0, durata infinita), la TerminateProcessAfterTimeOut, che impone al processo di terminare se il timeout è stato superato, e la WindowStyle, che consente di definire come eseguire il processo, Minimized, Maximized, hidden o Normal.

Execute Package Task

Esegue un package figlio da un package padre. Anche nei DTS era presente un task simile, ma nella versione 2005 è stato di molto semplificato. Innanzitutto nell'ultima versione vi è una proprietà molto importante, la ExecuteOutOfProcess, che permette di definire se il pacchetto viene lanciato al di fuori del processo del padre, e quindi in uno spazio di memoria riservato a se. Se è impostata a true, si occuperà maggiore quantità di memoria ma le prestazioni saranno comunque superiori.
Siccome i package possono risiedere sia su filesystem che sullo storage di SQL server, è necessario specificare la locazione dei SSIS da lanciare. Le possibilità, nella proprietà Location, sono quindi due: File system o SQL Server. Nel primo dei casi è necessario aver creato prima un connection manager su File System. Nel secondo caso è necessario puntare all'OLEDB del SQL Server che contiene i pacchetti.

N.B. La grande differenza con i DTS è che non è più necessario impostare dei parametri da passare al package figlio, poichè quest'ultimo, tramite le configurazioni fornite dai SSIS, è in grado di reperire la variabili direttamente dal padre.

File System Task

In un processo ETL nasce spesso l'esigenza di dover creare, cancellare, spostare, copiare file o cartelle. Tutte queste operazioni erano possibili nei DTS, ma ciò richiedeva la scrittura di codice (via ActiveX Script) in punti diversi del pacchetto. Con SSIS vi è ora il FileSystem task, che permette ogni tipo di gestione di file e cartelle. Dalle operazioni di cancellazione, creazione, spostamento, copia su file e cartelle all'impostazione degli attributi degli oggetti del filesystem.
La sezione più importante è la General, che contiene tutte le seguenti opzioni.

L'interfaccia che si presenta cambia in base al tipo di operazione che si decide di effettuare. 
Ad esempio, se si eseguono operazioni per cui una destinazione è necessaria (ad esempio lo spostamento), esiste la proprietà IsDestinationPathVariable che impone di definire alla voce DestinationVariable, la variabile contenente la destinazione dell'operazione. Da considerare anche la proprietà OverwriteDestination che, se impostata a true, consente la sovrascrittura del file di destinazione, nel caso esso esista già.
Lo stesso comportamento delle proprietà relative alla destinazione hanno la IsSourcePathVariable e la SourceVariable, ovviamente riferite alla sorgente.

FTP Task

Consente di ricevere o inviare file via FTP e addirittura cancellare file e cartelle (locali o remoti). In SQL Server 2000 era possibile solo inviare file.
Nella sezione General è possibile impostare il connection manager del sito FTP da raggiungere, mentre nella sezione File Transfer si possono definire tutte le proprietà relative alla sessione FTP. Come il File System Task, anche l'FTP Task permette di impostare i percorsi (locali o remoti) tramite variabili del pacchetto.



Le proprietà sono la IsRemotePathVariable/IsLocalPathVariable e le rispettive RemoteVariable/LocalVariable, con la conseguente OverwriteFileAtDest. Tutte queste proprietà sono configurabili in base al valore della proprietà Operation, che indica la tipologia di operazione da eseguire:
- Invia file
- Ricevi file
- Crea directory locale
- Crea directory remota
- Rimuovi directory locale
- Rimuovi directory remota
- Elimina file locali
- Elimina file remoti


Infine, esiste una proprietà utile, la IsTransferAscii, che permette di impostare la possibilità di trasportare file in formato ASCII.

Questa era una carrellata di altri task del control flow, alla prossima per un altro elenco di task..
stay tuned
Categoria: SSIS 2005 Basics
lunedì, 15 mag 2006 Ore. 19.06
Statistiche
  • Views Home Page: 599.571
  • Views Posts: 1.065.461
  • Views Gallerie: 637.597
  • n° Posts: 484
  • n° Commenti: 273



















Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003