Utilisation de l'activité ConditionedActivityGroup

L'activité ConditionedActivityGroup contient une collection d'activités enfants dont l'ordre d'exécution est contrôlé par les conditions appliquées à celles-ci. Pour plus d'informations sur les conditions, consultez Utilisation de conditions dans les workflows.

La logique d'exécution régie par la condition de l'activité ConditionedActivityGroup offre de nombreux moyens permettant de commander l'exécution des activités enfants, y compris un type d'exécution d'activité parallèle semblable à l'activité ParallelActivity et un type de comportement en boucle. Par exemple, vous pouvez utiliser une activité ConditionedActivityGroup pour faire une boucle dans un jeu d'activités, en fonction de critères spécifiques à chaque activité, jusqu'à ce qu'une condition Until soit true pour le ConditionedActivityGroup dans son ensemble.

Vous appliquez une condition Until à l'activité ConditionedActivityGroup à l'aide de UntilConditionProperty. Vous pouvez appliquer séparément une condition When, en utilisant WhenConditionProperty, pour chaque première activité enfant descendante dans le ConditionedActivityGroup. Si vous ne spécifiez pas de condition Until, l'activité ConditionedActivityGroup prend fin lorsque aucune activité enfant ne s'exécute et que la condition When de chaque première activité enfant ConditionedActivityGroup reçoit la valeur false. Si vous ne spécifiez pas de condition When pour une activité, l'activité s'exécute une seule fois.

Lorsqu'une activité ConditionedActivityGroup commence à s'exécuter en premier, elle attribue une valeur à sa condition Until. Si la condition Until a la valeur false, la condition When de toutes les premières activités enfants descendantes contenues dans l'activité ConditionedActivityGroup reçoit une valeur. Si la condition When d'une activité a la valeur true, elle est planifiée pour s'exécuter. Cette affectation de valeur aux conditions Until et When est répétée à chaque fois qu'une première activité enfant descendante est effectuée.

À chaque fois qu'une activité enfant finit de s'exécuter, la condition Until d'une activité ConditionedActivityGroup et les conditions When de toutes les premières activités enfants descendantes qui ne s'exécutent pas sont réévaluées. Par conséquent, les activités enfants descendantes suivantes figurant en première position peuvent être nouvellement planifiées ou replanifiées à des fins d'exécution selon ce qui s'est produit au cours de l'activité qui vient de s'exécuter. Dès que la condition Until de l'activité ConditionedActivityGroup reçoit la valeur true, elle annule immédiatement toute activité enfant en cours d'exécution.

Lorsqu'une activité enfant est exécutée plus d'une fois, une instance distincte de l'activité est alors créée pour chaque itération. Cela permet aux instances de s'exécuter indépendamment (et potentiellement en parallèle, comme dans le cas d'une activité ReplicatorActivity). Par conséquent, la définition de l'activité dans l'arborescence des activités (connue en tant que modèle) n'est jamais exécutée et sera toujours à l'état Initialized. L'activité composite, qui est le parent du modèle, offre l'accès aux instances en cours d'exécution du modèle. Par exemple, dans le cas de l'activité ConditionedActivityGroup, il existe toujours une instance active et le GetDynamicActivity retourne cette instance.

Pour plus d'informations, consultez la classe ConditionedActivityGroup de l'espace de noms System.Workflow.Activities dans la référence de la bibliothèque de classes de Windows Workflow Foundation.

Pour obtenir un exemple de code illustrant l'utilisation de l'activité ConditionedActivityGroup, consultez Using the ConditionedActivityGroup.

Voir aussi

Référence

ConditionedActivityGroup
UntilConditionProperty
WhenConditionProperty

Concepts

Utilisation de conditions dans les workflows
Utilisation de l'activité ParallelActivity
Comment : utiliser des conditions au moyen du code
Vue d'ensemble des règles et des conditions

Autres ressources

Rules and Conditions Samples
Using ConditionedActivityGroup Sample
Activités Windows Workflow Foundation

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.