2012-08-29 13 views
5

me gustaría validar y luego ejecutar paquete SSIS almacenado en SSIS Catálogo (Proyecto Modelo de implementación) a través de los objetos del espacio de nombres Microsoft.SqlServer.Management.IntegrationServices. Cuando ejecuto Validate método de PackageInfo clase sólo se ejecuta la validación, pero no esperar hasta el final. En one example, he encontrado que el autor dispara la validación en el modo "disparar y olvidar". ¿Por qué disparar cuando no nos molestamos en el resultado? En another one se ejecuta la ejecución sin validación previa.Validación de SSIS 2012 paquetes SSIS programáticamente a través de catálogos Managed Object Model

  1. ¿Debo verificar el paquete antes de cada ejecución?
  2. Si es así, cómo hacerlo en modo síncrono?
  3. También tengo curiosidad con la propiedad ValidationOperation Estado. Es envuelto columna catalog.validations status y puede tener, entre alia, valores succeeded (7) y completed (9) - ¿cuál es la diferencia entre ellos?

Respuesta

2

Ad 2: Yo era capaz de esperar a que resultado de la validación en un bucle:

var validationId = package.Validate(false, PackageInfo.ReferenceUsage.UseAllReferences, null); 
ValidationOperation validation = package.Parent.Parent.Parent.Validations[validationId]; 
do 
{ 
    Thread.Sleep(1000); 
    validation.Refresh(); 
} 
while (!validation.Completed);