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.