Meilleure approche pour créer une application pour modifier les variables SSIS et démarrer le package SSIS

Mon administrateur de database a plusieurs packages SSIS qu'il souhaiterait pouvoir fournir à l'user final un moyen d'entrer des valeurs pour les variables du package. Quelle serait la meilleure solution pour créer une application qui prendrait l'input de l'user et transmettrait datatables aux variables du package SSIS?

J'ai regardé http://blogs.msdn.com/b/michen/archive/2007/03/22/running-ssis-package-programmatically.aspx , et je suis même venu assez près avec certaines des informations ici – http://msdn.microsoft.com/en-us/library/ms403355(v=sql.100).aspx#Y1913 .

Je peux get ce travail localement en utilisant ce code

Dim packageName As Ssortingng Dim myPackage As Package Dim integrationServices As New Application If integrationServices.ExistsOnSqlServer(packageName, ".", Ssortingng.Empty, Ssortingng.Empty) Then myPackage = integrationServices.LoadFromSqlServer( _ packageName, "local", Ssortingng.Empty, Ssortingng.Empty, Nothing) Else Throw New ApplicationException( _ "Invalid package name or location: " & packagePath) End If myPackage.Variables.Item("Beg_Date").Value = startDate myPackage.Variables.Item("End_Date").Value = endDate myPackage.Execute() 

Le problème est ceci exige que l'user ait SSIS installé localement.

Vous pouvez utiliser des variables comme configuration et les transmettre lors de l'exécution. Nous faisons cela avec les packages parents qui appellent les packages enfants (qui ont les variables) mais je crois qu'il est possible de les envoyer directement dans l'appel au package (que vous pouvez créer dynamicment) de cette façon aussi.

Vous pouvez stocker les variables dans une table de configuration et requestr à l'user de mettre à jour la table de configuration via t-sql, puis d'appeler le package. Cela ne fonctionnerait que si vous avez des packages parents différents pour chaque user ou s'il n'y a aucun moyen que les users s'exécutent en même time pour éviter les conditions de course.