Utilisation de l'activité replicatorActivity

L'activité ReplicatorActivity permet de créer un nombre arbitraire d'instances d'une activité unique au moment de l'exécution. Chaque activité ReplicatorActivity peut contenir une seule activité enfant, mais l'enfant peut être une activité composite.

Par défaut, l'activité ReplicatorActivity se termine lorsque toutes les activités enfants sont terminées. Vous pouvez utiliser la propriété UntilCondition pour arrêter l'exécution de l'activité ReplicatorActivity avant l'achèvement des instances d'activité enfant. Pour plus d'informations sur les conditions, consultez Utilisation de conditions dans les workflows.

NoteRemarque :

L'activité ReplicatorActivity se bloque si toutes les activités enfants sont terminées et que la propriété UntilCondition correspond à false. Une fois que l'activité ReplicatorActivity s'est bloquée de cette manière, vous pouvez utiliser une modification de workflow pour ajouter une activité enfant à l'activité ReplicatorActivity. Ainsi, la propriété UntilCondition correspond à true.

Une ReplicatorActivity requiert deux renseignements clés :

  • La valeur Sequential ou Parallel doit être affectée à la propriété ExecutionType. La propriété ExecutionType indique si les instances d'activité enfant répliquées s'exécutent en parallèle, auquel cas toutes les instances sont créées lorsque l'activité ReplicatorActivity s'exécute, ou séquentiellement, auquel cas chaque instance de l'activité enfant est exécutée ultérieurement, une fois l'instance précédente terminée.

  • La propriété de collection InitialChildData doit être renseignée pour fournir les données de chaque instance d'activité enfant répliquée.

Vous pouvez implémenter le gestionnaire Initialized, qui est déclenché avant le début de l'exécution de l'activité ReplicatorActivity, pour renseigner la propriété de collection InitialChildData et définir le ExecutionType.

Vous pouvez également spécifier des gestionnaires pour les événements suivants à utiliser avec l'activité ReplicatorActivity :

  • L'événement ChildInitialized, qui est déclenché chaque fois qu'une instance de l'activité enfant est initialisée, passe les données de l'élément dans la collection InitialChildData à l'instance réelle de l'enfant qui est initialisée. ReplicatorChildEventArgs contient les arguments d'événement pour ce gestionnaire.

  • L'événement ChildCompleted qui est déclenché chaque fois qu'une instance de l'activité enfant se termine. ReplicatorChildEventArgs contient les arguments d'événement pour ce gestionnaire.

  • L'événement Completed qui est déclenché une fois que ReplicatorActivity est terminée.

Lorsqu'une activité enfant est exécutée plusieurs fois, une instance distincte de l'activité enfant 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 de l'activité ConditionedActivityGroup). 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 d'une activité ReplicatorActivity, il peut y avoir plusieurs instances actives de telle sorte que ReplicatorActivity.DynamicActivities retourne une collection des instances de l'activité enfant en cours d'exécution.

Pour plus d'informations, consultez la classe ReplicatorActivity 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é ReplicatorActivity, consultez Using Replicator.

Voir aussi

Référence

ReplicatorActivity
ReplicatorChildEventArgs

Concepts

Utilisation de conditions dans les workflows
Vue d'ensemble des règles et des conditions

Autres ressources

Replicator Sample
Activités Windows Workflow Foundation

Footer image

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