2012-08-29 18 views
5

Desidero convalidare e quindi eseguire il pacchetto SSIS memorizzato nel catalogo SSIS (Project Deployment Model) tramite oggetti dallo spazio dei nomi Microsoft.SqlServer.Management.IntegrationServices. Quando eseguo il metodo Validate dalla classe PackageInfo, esegue solo la convalida, ma non aspetta fino alla fine. In one example ho trovato che l'autore attiva la convalida in modalità "fire and forget" - perché licenziarlo quando non ci preoccupiamo del risultato? Nell'esecuzione another one l'esecuzione viene eseguita senza previa convalida.Validazione dei pacchetti SSIS 2012 in modo programmatico tramite SSIS Catalog Managed Object Model

  1. Devo verificare il pacchetto prima di ogni esecuzione?
  2. Se sì, come farlo in modalità sincrona?
  3. Sono anche curioso con la proprietà di stato ValidationOperation. È la colonna spostata catalog.validations status e può avere, inter alia, valori succeeded (7) e completed (9) - che differenza c'è tra ?

risposta

2

Ad 2: sono stato in grado di aspettare per il risultato di convalida in un ciclo:

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);