Como ejecutar los package hecho en SSIS, desde nuestras aplicaciones .Net

Algunas veces necesitaremos ejecutar un package realizado en SSIS  desde nuestras aplicaciones .NET.  Para realizar dicha tarea tenemos que hacer referencia “Microsoft.Sqlserver.ManagedDts”, El código siguiente ejecuta un package:

 

Microsoft.SqlServer.Dts.Runtime.DTSExecResult pkgResults;

Application app = new Application();

Package package = app.LoadPackage(“Ruta del Package”, null);

pkgResults=package.Execute();

 

Dado que el package que necesitaba ejecutar desde mi aplicación web demoraba mucho lo deje dentro de una cola de ejecución con el metodo “System.Threading.ThreadPool.QueueUserWorkItem” un código de ejemplo seria:

 

  protected void Button1_Click(object sender, EventArgs e)

    {

        ThreadPool.QueueUserWorkItem(new WaitCallback(Ejecutar));

    }

 

    public static void Ejecutar(object e)

    {

        Microsoft.SqlServer.Dts.Runtime.DTSExecResult pkgResults;

        Application app = new Application();

        Package package = app.LoadPackage(“Ruta del Package”, null);

        pkgResults = package.Execute();

    }

 

Al colocar el método en una cola, si ocurre un error dentro de ese método tendríamos que implementar una forma  de cómo informar al usuario si la ejecución fue exitosa o no. En mi caso el que se encarga de realizar este trabajo es el package que tiene implementado que envíe un mail si fue exitoso o si se produjo un error.

Esta entrada fue publicada en Business Intelligence. Guarda el enlace permanente.

Deja un comentario