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

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,

Advertisement
Categorías:.NET Etiquetas: , , , ,
  1. nilson perez
    02/02/2012 a las 9:16 am | #1

    Hola compañero como estas, me ha gustado el tema y de hecho he aprendido bastante, al comienzo no me funcionaban pero porque yo intentaba ejecurlos en 2005 pero simplemente lo que termina en 100 debe terminar en 90 jejeje y ahi funciona bueno mas otros detalles. Sin embargo quisiera molestarte con una pregunta. Estoy haciendo un ejercicio pero con un script component. Estoy usando este componente como origen para leer desde unas tablas parametrizadas anteriormente la tabla origen y los campos desde donde voy a leer el origen, entonces creo la cadena de conexion dinamicamente. hasta ahí no le veo mucho complique. Pero luego lo que necesito es usar otro x componente que cuando recorra cada registro ejecute un sp quien es el que graba en la base, bueno ademas valida la estructura de los campos. ¿Para este segundo componente crees que deba ser un script component?. Agradezco cualquier comentario, guía, documento sobre el script component la verdad sé muy poco sobre él

  2. nilson perez
    07/02/2012 a las 4:23 pm | #3

    Hola compañero, por favor sabes donde encontrar algún ejemplo sobre como crear el componente “scritp component” por código, como conectarlo al conexion manager (ADO.NET) y como adicionarle el scritp?, he tenido muchas dificultades con este componente, y cualquier ayuda te lo agradecería?

    • 08/02/2012 a las 10:46 am | #4

      Hola Nilson, el script component lleva varios esquemas basados en XML para guardar lo que construyes en el… actualmente indago al respecto. Te dejaré saber por esta via si consigo algo y lo posteo.

      Saludos,

  1. 26/01/2012 a las 6:28 pm | #1
  2. 26/01/2012 a las 6:28 pm | #2
  3. 26/01/2012 a las 6:30 pm | #3

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s