Point de terminaison de gestion de workflow
Cette rubrique s'applique à Windows Workflow Foundation 4.
Le point de terminaison de gestion de workflow permet aux développeurs d'appeler des opérations de contrôle qui permettent de contrôler à distance des instances de workflow hébergées à l'aide de WorkflowServiceHost. Cette fonctionnalité peut être utilisée pour effectuer par programme des opérations de contrôle, comme interrompre, continuer et terminer.
Gestion de l'instance de workflow
.NET Framework version 4 définit un nouveau contrat appelé IWorkflowInstanceManagement. Ce contrat définit une série d'opérations de contrôle qui vous permettent de contrôler à distance des instances de workflow hébergées par WorkflowServiceHost. WorkflowControlEndpoint est un point de terminaison standard qui fournit une implémentation du contrat IWorkflowInstanceManagement. WorkflowControlClient est une classe utilisée pour envoyer les opérations de contrôle au WorkflowControlEndpoint.
Les instances de workflow peuvent se trouver dans l'un des états suivants :
- Actif
État d'une instance de workflow avant qu'elle atteigne l'état terminé et lorsqu'elle n'est pas dans l'état interrompu. Dans cet état, l'instance de workflow s'exécute et traite des messages d'application.
- Interrompu
Dans cet état, l'instance de workflow ne s'exécute pas, même si des activités n'ont pas démarré leur exécution ou se sont partiellement exécutées.
- Terminé
Dernier état d'une instance de workflow. L'instance de workflow ne peut pas s'exécuter après avoir atteint l'état terminé.
IWorkflowInstanceManagement
L'interface IWorkflowInstanceManagement définit un jeu d'opérations de contrôle avec des versions synchrones et asynchrones. Les versions avec transaction requièrent l'utilisation d'une liaison prenant en compte les transactions. Le tableau suivant répertorie les opérations de contrôle prises en charge.
Opération de contrôle | Description |
---|---|
Abandonner |
Entraîne l'arrêt forcé de l'exécution de l'instance de workflow. |
Annuler |
Fait passer une instance de workflow de l'état actif ou interrompu à l'état terminé. |
Exécuter |
Offre à une instance de workflow la possibilité de s'exécuter. |
Interrompre |
Fait passer une instance de workflow de l'état actif à l'état interrompu. |
Arrêter |
Fait passer une instance de workflow de l'état actif ou interrompu à l'état terminé. |
Annuler l'interruption |
Fait passer une instance de workflow de l'état interrompu à l'état actif. |
TransactedCancel |
Effectue l'opération Annuler dans le cadre d'une transaction (transmise à partir du client ou créée localement). Si le système maintient l'état durable de l'instance de workflow, celle-ci doit être persistante pendant l'exécution de cette opération. |
TransactedRun |
Effectue l'opération Exécuter dans le cadre d'une transaction (transmise à partir du client ou créée localement). Si le système maintient l'état durable de l'instance de workflow, celle-ci doit être persistante pendant l'exécution de cette opération. |
TransactedSuspend |
Effectue l'opération Interrompre dans le cadre d'une transaction (transmise à partir du client ou créée localement). Si le système maintient l'état durable de l'instance de workflow, celle-ci doit être persistante pendant l'exécution de cette opération. |
TransactedTerminate |
Effectue l'opération Arrêter dans le cadre d'une transaction (transmise à partir du client ou créée localement). Si le système maintient l'état durable de l'instance de workflow, celle-ci doit être persistante pendant l'exécution de cette opération. |
TransactedUnsuspend |
Effectue l'opération Annuler l'interruption dans le cadre d'une transaction (transmise à partir du client ou créée localement). Si le système maintient l'état durable de l'instance de workflow, celle-ci doit être persistante pendant l'exécution de cette opération. |
Le contrat IWorkflowInstanceManagement ne permet pas de créer une nouvelle instance de workflow, mais seulement de gérer des instances de workflow existantes. Pour plus d'informations sur le sujet suivant la création à distance d'une instance de workflow, consultez Extensibilité de l'hôte du service de workflow.
WorkflowControlEndpoint
WorkflowControlEndpoint est un point de terminaison standard avec un contrat fixe, IWorkflowInstanceManagement. Lorsqu'il est ajouté à une instance WorkflowServiceHost, ce point de terminaison peut être utilisé pour envoyer des opérations de commande à n'importe quelle instance de workflow hébergée par l'instance hôte. Pour plus d'informations sur le sujet suivant les points de terminaison standard, consultez Standard Endpoints.
WorkflowControlClient
WorkflowControlClient est une classe qui vous permet d'envoyer des messages de contrôle à un WorkflowControlEndpoint sur un WorkflowServiceHost. Elle contient une méthode pour chacune des opérations prises en charge par le contrat IWorkflowInstanceManagement, à l'exception des opérations avec transaction. WorkflowControlClient utilise la transaction ambiante pour déterminer si une opération avec transaction doit être utilisée.