Ponto de extremidade de controle de fluxo de trabalho
O ponto de extremidade de controle de fluxo de trabalho permite que os desenvolvedores chamem operações de controle para controlar remotamente instâncias de fluxo de trabalho hospedadas usando WorkflowServiceHosto . Esse recurso pode ser usado para executar programaticamente operações de controle, como suspender, retomar e encerrar.
Aviso
Se o uso do ponto de extremidade de controle de fluxo de trabalho em uma transação e o fluxo de trabalho que está sendo controlado contiver uma Persist atividade, a instância do fluxo de trabalho será bloqueada até que a transação atinja o tempo limite.
Gerenciamento de instâncias de fluxo de trabalho
O .NET Framework 4.6.1 define um novo contrato chamado IWorkflowInstanceManagement. Este contrato define uma série de operações de controle que permitem controlar remotamente instâncias de fluxo de trabalho hospedadas pelo WorkflowServiceHost. WorkflowControlEndpoint é um ponto de extremidade padrão que fornece uma implementação do IWorkflowInstanceManagement contrato. WorkflowControlClient é uma classe usada para enviar as operações de controle para o WorkflowControlEndpoint.
As instâncias de fluxo de trabalho podem estar em um dos seguintes estados:
Ativos
O estado de uma instância de fluxo de trabalho antes de atingir o estado concluído e quando não estiver no estado suspenso. Enquanto estiver nesse estado, a instância do fluxo de trabalho executa e processa mensagens do aplicativo.
Suspenso
Enquanto estiver nesse estado, a instância do fluxo de trabalho não será executada mesmo se houver atividades que não começaram a ser executadas ou foram executadas parcialmente.
Concluído
O estado final de uma instância de fluxo de trabalho. A instância do fluxo de trabalho não pode ser executada depois de atingir o estado concluído.
IWorkflowInstanceManagement
A IWorkflowInstanceManagement interface define um conjunto de operações de controle com versões síncronas e assíncronas. As versões transacionadas requerem o uso de uma associação com reconhecimento de transações. A tabela a seguir lista as operações de controle suportadas.
Operação de Controlo | Description |
---|---|
Abortar | Interrompe com força a execução da instância do fluxo de trabalho. |
Cancelar | Transiciona uma instância de fluxo de trabalho do estado ativo ou suspenso para o estado concluído. |
Executar | Fornece a uma instância de fluxo de trabalho a oportunidade de executar. |
Suspender | Transiciona uma instância de fluxo de trabalho do estado ativo para o estado suspenso. |
Terminar | Transiciona uma instância de fluxo de trabalho do estado ativo ou suspenso para o estado concluído. |
Sem suspensão | Transiciona uma instância de fluxo de trabalho do estado suspenso para o estado ativo. |
TransactedCancel | Executa a operação Cancel em uma transação (fluída do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância do fluxo de trabalho deverá ser mantida durante a execução desta operação. |
TransactedRun | Executa a operação Run sob uma transação (fluída do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância do fluxo de trabalho deverá ser mantida durante a execução desta operação. |
TransactedSuspend | Executa a operação Suspender em uma transação (fluída do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância do fluxo de trabalho deverá ser mantida durante a execução desta operação. |
TransactedTerminate | Executa a operação Terminate sob uma transação (fluída do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância do fluxo de trabalho deverá ser mantida durante a execução desta operação. |
TransactedUnsuspend | Executa a operação Unsuspend em uma transação (fluída do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância do fluxo de trabalho deverá ser mantida durante a execução desta operação. |
O IWorkflowInstanceManagement contrato não fornece um meio de criar uma nova instância de fluxo de trabalho, apenas para gerenciar instâncias de fluxo de trabalho existentes. Para obter mais informações sobre como criar remotamente uma nova instância de fluxo de trabalho, consulte Extensibilidade do host do serviço de fluxo de trabalho.
WorkflowControlEndpoint
WorkflowControlEndpoint é um ponto final padrão com um contrato fixo, IWorkflowInstanceManagement. Quando adicionado a uma WorkflowServiceHost instância, esse ponto de extremidade pode ser usado para enviar operações de comando para qualquer instância de fluxo de trabalho hospedada pela instância do host. Para obter mais informações sobre pontos de extremidade padrão, consulte Pontos de extremidade padrão.
WorkflowControlClient
WorkflowControlClient é uma classe que permite enviar mensagens de controle para um WorkflowControlEndpoint em um WorkflowServiceHostarquivo . Contém um método para cada uma das operações apoiadas pelo contrato, IWorkflowInstanceManagement com exceção das operações transacionadas. WorkflowControlClient usa a transação ambiente para determinar se uma operação transacionada deve ser usada.