web-dev-qa-db-fra.com

exécuter sélectivement la tâche dans le flux de contrôle ssis

J'ai un package SSIS avec un flux de contrôle contenant un tas de tâches SQL d'exécution dans une séquence.

Je dois vérifier un indicateur pour chacune des tâches et exécuter la tâche si elle est définie, sinon sauter et passer à la suivante.

Chacune de ces tâches exécute un proc stocké. Je peux donc vérifier dans le proc et "Retour" s'il n'est pas défini. Je cherchais une solution "SSIS" le cas échéant.

TIA

PS

30
ps.

Entre vos tâches de flux de contrôle, cliquez sur la flèche et choisissez Modifier. Lorsque vous faites cela, vous obtenez une boîte de dialogue qui vous permet de vérifier la "contrainte" (réussite, achèvement ou échec) de la tâche, une "expression" (c'est-à-dire que vous pouvez demander à votre tâche SQL d'exécution de renvoyer une valeur, de stocker cette valeur dans une variable, et vérifiez la valeur de cette variable dans une expression pour déterminer s'il faut continuer sur le chemin que vous modifiez), une "expression et une contrainte" et une "expression ou une contrainte". Ces deux derniers sont les mêmes sauf pour la logique. "Expression et contrainte" requiert une condition vraie sur l'expression et la contrainte, "expression ou contrainte" requiert une condition vraie sur une seule de l'expression et de la contrainte.

34
William Salzman

Je pense que votre question était la même que la mienne dans laquelle je voulais contrôler l'exécution d'une tâche "en ligne" dans mon flux de contrôle.

La manière la plus simple que j'ai trouvée n'implique pas l'expression sur les connecteurs de données entre les objets de flux de contrôle, mais plutôt l'utilisation d'expressions sur l'objet de contrôle lui-même et la définition de la valeur "Désactiver" à l'aide d'une expression. De cette façon, lors de l'exécution, l'objet est ignoré ou n'est pas basé sur l'évaluation de l'expression.

À titre d'exemple, je voulais exécuter une "tâche d'exécution SQL" pour supprimer mes index selon que la variable nommée "ExtractType" était égale à "complète". Si c'était le cas, je voulais supprimer les index de mes tables avant de faire mon chargement complet.

50
Amos Wood