Compartilhar via


Terminal 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 WorkflowServiceHost. Esse recurso pode ser usado para executar programaticamente operações de controle como suspender, retomar e encerrar.

Aviso

Se você estiver usando o ponto de extremidade de controle de fluxo de trabalho em uma transação e o fluxo de trabalho controlado contiver uma atividade Persist, a instância de fluxo de trabalho será bloqueada até que a transação atinja o tempo limite.

Gerenciamento de instância de fluxo de trabalho

O .NET Framework 4.6.1 define um novo contrato chamado IWorkflowInstanceManagement. Esse contrato define uma série de operações de controle que permitem controlar remotamente as instâncias de fluxo de trabalho hospedadas por WorkflowServiceHost. WorkflowControlEndpoint é um ponto de extremidade padrão que fornece uma implementação do contrato IWorkflowInstanceManagement. WorkflowControlClient é uma classe que é 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:

Ativo
O estado de uma instância de fluxo de trabalho antes de atingir o estado concluído e quando ele não estiver no estado suspenso. Nesse estado, a instância de fluxo de trabalho executa e processa mensagens de aplicativo.

Suspenso
Nesse estado, a instância de fluxo de trabalho não é executada mesmo se houver atividades que não tenham começado a ser executadas ou tenham sido executadas parcialmente.

Concluído
O estado final de uma instância de fluxo de trabalho. A instância de 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ção. A tabela a seguir lista as operações de controle com suporte.

Operação de controle Descrição
Abortar Interrompe com força a execução da instância de fluxo de trabalho.
Cancelar Faz a transição de uma instância de fluxo de trabalho do estado ativo ou suspenso para o estado concluído.
Correr Fornece a uma instância de fluxo de trabalho a oportunidade de executar.
Suspender Faz a transição de uma instância de fluxo de trabalho do estado ativo para o estado suspenso.
Terminar Faz a transição de uma instância de fluxo de trabalho do estado ativo ou suspenso para o estado concluído.
Cancelar suspensão Faz a transição de uma instância de fluxo de trabalho do estado suspenso para o estado ativo.
TransactedCancel Executa a operação Cancelar em uma transação (proveniente do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância de fluxo de trabalho deverá ser mantida durante a execução dessa operação.
TransactedRun Executa a operação Executar em uma transação (transmitida pelo cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância de fluxo de trabalho deverá ser mantida durante a execução dessa operação.
TransactedSuspend Executa a operação Suspender em uma transação (transmitida pelo cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância de fluxo de trabalho deverá ser mantida durante a execução dessa operação.
TransactedTerminate Executa a operação Terminar em uma transação (transmitida pelo cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância de fluxo de trabalho deverá ser mantida durante a execução dessa operação.
TransactedUnsuspend Executa a operação Unsuspend em uma transação (proveniente do cliente ou criada localmente). Se o sistema mantiver o estado durável da instância do fluxo de trabalho, a instância de fluxo de trabalho deverá ser mantida durante a execução dessa 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 endpoint padrão com um contrato fixo IWorkflowInstanceManagement. Quando adicionado a uma instância WorkflowServiceHost, 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 que você envie mensagens de controle para um WorkflowControlEndpoint em um WorkflowServiceHost. Ele contém um método para cada uma das operações com suporte pelo IWorkflowInstanceManagement contrato, exceto para as operações transacionadas. O WorkflowControlClient usa a transação de ambiente para determinar se uma operação transacionada deve ser usada.