Vue d'ensemble de Windows Workflow
Un flux de travail est un ensemble d’unités élémentaires appelées activités, stocké comme un modèle décrivant un processus réel. Les workflows offrent un moyen de décrire l'ordre d'exécution et les relations de dépendance entre des éléments de travail de courte ou longue durée. Ce travail s'effectue à travers le modèle de démarrage à l'arrêt et les activités peuvent être exécutées par des utilisateurs ou par les fonctions système.
Moteur d'exécution de workflow
Chaque instance de workflow en cours d'exécution est créée et gérée par un moteur d'exécution in-process avec lequel le processus hôte interagit par le biais de l'un des éléments suivants :
Un WorkflowInvoker, qui appelle le workflow comme une méthode.
Un WorkflowApplication pour contrôler explicitement l'exécution d'une instance de workflow unique.
Un WorkflowServiceHost pour les interactions basées sur des messages dans les scénarios à plusieurs instances.
Chacune de ces classes encapsule le runtime de l'activité principale représenté en tant que ActivityInstance responsable de l'exécution de l'activité. Un domaine d'application peut comporter plusieurs objets ActivityInstance fonctionnant simultanément.
Chacun des trois objets d’interaction hôtes précédents est créé à partir d’une arborescence d’activités appelée programme de workflow. À l’aide de ces types ou d’un hôte personnalisé qui encapsule ActivityInstance, des flux de travail peuvent être exécutés à l’intérieur de n’importe quel processus Windows, notamment des applications console, des applications basées sur les formulaires, des services Windows, des sites web ASP.NET et des services Windows Communication Foundation (WCF).
Composants de workflow dans le processus hôte
Interaction entre composants de workflow
Le diagramme suivant montre comment les composants de workflow interagissent les uns avec les autres.
Dans le diagramme précédent, la méthode Invoke de classe WorkflowInvoker est utilisée pour appeler plusieurs instances de workflow. WorkflowInvoker est utilisé pour les workflows légers ne nécessitant pas de gestion à partir de l'hôte ; les workflows qui nécessitent d'être gérés à partir de l'hôte (tel qu'une reprise Bookmark) doivent être exécutés avec Run à la place. Il n'est pas nécessaire d'attendre qu'une instance de workflow soit terminée avant d'en appeler une autre ; le moteur de runtime prend en charge plusieurs instances de workflow simultanément. Les workflows appelés sont les suivants :
Une activité Sequence qui contient une activité WriteLine enfant. Variable de l'activité parente est lié à un InArgument de l'activité enfant. Pour plus d’informations sur les variables, les arguments et la liaison, consultez Variables et Arguments.
Une activité personnalisée appelée
ReadLine
. Un OutArgument de l'activitéReadLine
est retourné à la méthode Invoke appelante.Une activité personnalisée qui dérive de la classe abstraite CodeActivity. Le CodeActivity peut accéder aux fonctionnalités d’exécution (telles que le suivi et les propriétés) à l’aide du CodeActivityContext qui est disponible en tant que paramètre de la méthode Execute. Pour plus d’informations sur ces fonctionnalités d’exécution, consultez Suivi et traçage de workflow et Propriétés d’exécution de workflow.