Point de terminaison de contrôle de workflow
Le point de terminaison de contrôle 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.
Avertissement
Si vous utilisez le point de terminaison de contrôle de flux de travail au sein d’une transaction et que le flux de travail contrôlé contient une activité Persist, l’instance de flux de travail se bloque jusqu’à ce que la transaction expire.
Gestion de l'instance de workflow
.NET Framework 4.6.1 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 les 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.
Completed
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 |
---|---|
Abandon | 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. |
Terminate | 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 la création à distance d’une nouvelle instance de flux de travail, consultez Extensibilité de l’hôte du service de flux de travail.
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 les points de terminaison standard, consultez Points de terminaison Standard.
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.