Contraintes de précédence
Les contraintes de précédence lient les exécutables, les conteneurs et les tâches des packages dans un flux de contrôle et spécifient les conditions qui déterminent si les exécutables s'exécutent. Un exécutable peut être une boucle For, une boucle Foreach, un conteneur de séquence, une tâche ou un gestionnaire d'événement. Les gestionnaires d'événements utilisent également les contraintes de précédence pour lier leurs exécutables dans un flux de contrôle.
Une contrainte de précédence lie deux exécutables : l'exécutable de précédence et l'exécutable contraint. L'exécutable de précédence s'exécute avant l'exécutable contraint et le résultat de l'exécution de l'exécutable de précédence peut déterminer si l'exécutable contraint s'exécute. Le schéma suivant illustre deux exécutables liés par une contrainte de précédence.
L'architecture à conteneurs imbriqués de Integration Services permet à tous les conteneurs (à l'exception du conteneur hôte de tâche qui encapsule une seule tâche) d'inclure d'autres conteneurs, chacun avec son propre flux de contrôle. Les conteneurs de boucles For, de boucles Foreach et de séquence peuvent inclure plusieurs tâches et d'autres conteneurs, qui à leur tour peuvent inclure plusieurs tâches et conteneurs. Par exemple, un package avec une tâche de script et un conteneur de séquence possède une contrainte de précédence qui lie la tâche de script et le conteneur de séquence. Le conteneur de séquence contient trois tâches de script et ses contraintes de précédence lient les trois tâches de script dans un flux de contrôle. Le schéma suivant illustre les contraintes de précédence dans un package avec deux niveaux d'imbrication.
Le package étant situé au sommet de la hiérarchie de conteneurs SSIS, plusieurs packages ne peuvent pas être liés par des contraintes de précédence ; toutefois, vous pouvez ajouter une tâche d'exécution de package à un package et lier indirectement un autre package au flux de contrôle.
Vous pouvez configurer des contraintes de précédence de plusieurs manières :
- Spécifiez une opération d'évaluation. La contrainte d'évaluation utilise une valeur de contrainte, une expression ou les deux pour déterminer si l'exécutable contraint s'exécute.
- Si la contrainte de précédence utilise un résultat d'exécution, vous pouvez spécifier le résultat d'exécution comme étant un succès, un échec ou à l'achèvement.
- Si la contrainte de précédence utilise un résultat d'évaluation, vous pouvez fournir une expression qui correspond à une valeur booléenne.
- Spécifiez si la contrainte de précédence est évaluée seule ou avec d'autres contraintes qui s'appliquent à l'exécutable contraint.
Opérations d'évaluation
Integration Services propose les opérations d'évaluation suivantes :
- Une contrainte qui utilise uniquement le résultat d'exécution de l'exécutable de précédence pour déterminer si l'exécutable contraint s'exécute. Le résultat d'exécution de l'exécutable de précédence peut être achèvement, succès ou échec.
- Une expression qui est évaluée pour déterminer si l'exécutable contraint s'exécute. Si le résultat de l'évaluation est true, l'exécutable contraint s'exécute.
- Une expression et une contrainte qui allient les exigences des résultats d'exécution de l'exécutable de précédence et les résultats de retour de l'évaluation de l'expression.
- Une expression ou une contrainte qui utilisent les résultats d'exécution de l'exécutable de précédence ou les résultats de retour de l'évaluation de l'expression.
L'expression doit être une expression SSIS valide et elle peut inclure des fonctions, des opérateurs et des variables système et personnalisées. Pour plus d'informations, consultez Informations de référence des expressions Integration Services et Variables Integration Services.
Résultats d'exécution
La contrainte de précédence peut utiliser les résultats d'exécution suivants seuls ou avec une expression.
- L'achèvement requiert uniquement que l'exécutable de précédence soit terminé, quel que soit le résultat, pour que l'exécutable contraint s'exécute.
- Le succès requiert que l'exécutable de précédence se termine avec succès pour que l'exécutable contraint s'exécute.
- L'échec requiert que l'exécutable de précédence échoue pour que l'exécutable contraint s'exécute.
Remarque : |
---|
Seules les contraintes de précédence membres de la même collection Precedence Constraint peuvent être groupées dans une condition AND logique. Par exemple, vous ne pouvez pas combiner des contraintes de précédence à partir de deux conteneurs de boucles Foreach. |
Configuration de la contrainte de précédence
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS, cliquez sur la rubrique suivante :
Pour plus d'informations sur la façon de définir ces propriétés dans le concepteur SSIS, cliquez sur l'une des rubriques suivantes :
- Procédure : définir les propriétés de contrainte de précédence à l'aide de l'éditeur de contrainte de précédence
- Procédure : définir les propriétés des contraintes de précédence dans la fenêtre Propriétés
- Procédure : définir la valeur de contrainte de précédence à l'aide du menu contextuel
Configuration de la contrainte de précédence par programme
Pour plus d'informations sur la définition de ces propriétés par programme, cliquez sur la rubrique suivante :
Voir aussi
Tâches
Définition de contraintes de précédence sur les tâches et les conteneurs
Concepts
Conteneurs Integration Services
Tâches Integration Services
Création du flux de contrôle d'un package