c# - ponen - ¿Cómo puedo llamar a SSIS mediante programación desde.NET?
estandar de documentacion de codigo c# (5)
Tengo una aplicación donde cada vez que un archivo se carga en un directorio, tengo que llamar a SSIS para analizar el archivo XML.
¿Puedo llamar a un SSIS directamente desde un servicio .NET de Windows?
Ejecutando el paquete de SSIS programmatically .
Prefiero el segundo método:
Inicie el proceso DTEXEC.EXE. DTEXEC es una utilidad de línea de comandos para ejecutar paquetes de SSIS. Vea sus opciones de línea de comandos aquí: http://msdn2.microsoft.com/en-us/library/ms162810.aspx
Beneficios: ejecutar el paquete fuera de proceso gana confiabilidad. Se puede usar desde cualquier lenguaje de programación (incluido .NET 1.1 :)). Parámetros fáciles de pasar mediante el establecimiento de valores de variables.
Inconvenientes: también solo local. Es más difícil obtener información sobre el progreso del paquete (pero el registro de SSIS puede darle la mayor parte de la funcionalidad). Algunos gastos generales al comenzar un nuevo proceso (probablemente mínimo en comparación con el tiempo de ejecución para paquetes grandes).
Específico de ASP.NET: la función CreateProcess de Win32 ignora la suplantación de subprocesos. Por lo tanto, si desea que DTEXEC se ejecute en una cuenta diferente de la cuenta de proceso ASP.NET, debe hacer que el usuario ingrese el nombre / contraseña y pasarlo a Process.Start, o utilice el método descrito en la siguiente KB para ejecutar el proceso secundario en la cuenta suplantada http : //support.microsoft.com/kb/889251 .
puede ejecutar su paquete de SSIS programáticamente, de la siguiente manera:
using System;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
namespace ConsoleApplicationSSIS
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Loading SSIS Service...");
//Application object allows load your SSIS package
Application app = new Application();
//In order to retrieve the status (success or failure) after running SSIS Package
DTSExecResult result ;
//Specify the location of SSIS package - dtsx file
string SSISPackagePath = @"C:/Microsofts/BI/SSIS/ConsoleApplicationSSIS/IntegrationServiceScriptTask/Package.dtsx";
//Load your package
Package pckg = (Package)app.LoadPackage(SSISPackagePath,true,null);
//Execute the package and retrieve result
result = pckg.Execute();
//Print the status success or failure of your package
Console.WriteLine("{0}", result.ToString());
Console.ReadLine();
}
}
}
si quiere una muestra completa, vaya a: http: //hassanboutougha.wordpress.com/2012/10/13/run-your-your-package-progammatically/
Explico cómo crear un paquete simple de SSIS y luego cómo llamarlo programáticamente desde una aplicación de consola. No olvide tener este ensamblado: C: / Archivos de programa (x86) / Microsoft SQL Server / 100 / SDK / Assemblies / Microsoft.SQLServer.DTSRuntimeWrap.dll para hacer referencia al espacio de nombres ssis en tiempo de ejecución
también puede pasar sus variables programáticamente y cambiar también las conexiones de origen y destino de su paquete ssis
Puede llamar a SSIS programáticamente, ejecutar el paquete y cambiar la configuración desde un código .NET utilizando el tiempo de ejecución DTS. Aquí hay un código completo de cómo puedes hacerlo .
Puede llamar al paquete SSIS desde su servicio de Windows. Pero Microsoft.SqlServer.Dts debe instalarse en el sistema donde se ejecutarán los servicios de Windows. Si ha instalado DTS instalado en esa máquina, llame directamente al paquete SSIS. Si no está instalado, entonces debe hacer lo siguiente.
- Crea el paquete SSIS
- Crea el trabajo que ejecuta el paquete SSIS
- En su ADO.NET [reside en el código de servicios de Windows], llame al procedimiento almacenado que ejecuta el trabajo [configurado para ejecutar el paquete SSIS]. A continuación se muestra un ejemplo desde su código .NET.
EXEC msdb.dbo.sp_start_job N''YourJobName ''
¡Espero que esto ayude!
Actualizando esta vieja pregunta:
En SQL Server 2012 puede hacer esto simplemente creando un procedimiento almacenado que llamará a create_execution
y set_execution_parameter
La guía paso a paso se puede encontrar aquí: https://blogs.msdn.microsoft.com/biblog/2013/05/07/step-by-step-of-executing-ssis-2012-package-through-stored -procedimiento/