Creando paquetes de SSIS con .NET – Creando Execute Package Task y Execute Process Task

Se pueden crear paquetes de SQL Server Integration Services (SSIS) programáticamente con .NET, haciendo uso de las librerías que incluye SQL Server 2008. En este post se explica cómo crear Execute Package Task y Execute Process Task.

Serie Creando paquetes de SSIS con .NET

Continuando esta serie y partiendo del post inicial donde agregamos los elementos basicos para crear un paquete de SSIS con C#/.NET (puedes guiarte con el primer post de esta serie – Agregando elementos básicos), vamos a agregar un Execute Package Task y un Execute Process Task.

Execute Package Task

Este componente nos permite ejecutar un paquete de SSIS (.dtsx) desde otro paquete. Este tipo de componente nos puede ayudar para orquestar la ejecución de muchas paquetes y combinarlo con otras operaciones.

Para crear este componente utilizaremos el siguiente código:

//Para este componente se necesita un file connection, en este ejemplo
//se parte de que el componente ya está creado y se llama dtsx.Origen
//En posts anteriores de esta serie se explica cómo crearlo por código
Executable ExePKGexe = pkg.Executables.Add("STOCK:ExecutePackageTask");
TaskHost exePKG = ExePKGexe as TaskHost;
exePKG.Name = "Ejecutar un DTSX";
exePKG.Properties["Connection"].SetValue(exePKG, "dtsx.Origen");

El código es bastante corto ya que sólo debemos definir la conexión que usará este componente debido a que el objeto de conexión es el que contiene la información del paquete a ejecutar.

Execute Process Task

Este componente nos permite ejecutar algún proceso con o sin parámetros desde un paquete de SSIS. Para este ejemplo vamos a ejecutar Powershell.exe con algunos parámetros. Si lo construimos gráficamente sería algo como:

Para crear este componente utilizaremos el siguiente código:

Executable exeProTaskexe = pkg.Executables.Add("STOCK:ExecuteProcessTask");
TaskHost exeProTask = exeProTaskexe as TaskHost;
exeProTask.Name = "Ejecutar Powershell con parámetros";
exeProTask.Properties["Executable"].SetValue(exeProTask, @"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe");
exeProTask.Properties["Arguments"].SetValue(exeProTask, "-command \"get-process;return 0;\"");
exeProTask.Properties["SuccessValue"].SetValue(exeProTask, 0);
exeProTask.Properties["WindowStyle"].SetValue(exeProTask, 0);

Seguiré indagando en cómo crear más componentes para un paquete SSIS desde C#/.NET.

Nos leemos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s