Visão geral do fluxo de trabalho do Windows
Um fluxo de trabalho é um conjunto de unidades elementares chamadas atividades que são armazenadas como um modelo que descreve um processo do mundo real. Os fluxos de trabalho fornecem uma maneira de descrever a ordem de execução e as relações dependentes entre partes de trabalho de curta ou longa execução. Esse trabalho passa pelo modelo do início ao fim, e as atividades podem ser executadas por pessoas ou por funções do sistema.
Mecanismo de tempo de execução do fluxo de trabalho
Cada instância de fluxo de trabalho em execução é criada e mantida por um mecanismo de tempo de execução em processo com o qual o processo do host interage por meio de um dos seguintes:
A WorkflowInvoker, que invoca o fluxo de trabalho como um método.
A WorkflowApplication para controle explícito sobre a execução de uma única instância de fluxo de trabalho.
A WorkflowServiceHost para interações baseadas em mensagens em cenários de várias instâncias.
Cada uma dessas classes encapsula o tempo de execução da atividade principal representado como um ActivityInstance responsável pela execução da atividade. Pode haver vários ActivityInstance objetos dentro de um domínio de aplicativo em execução simultânea.
Cada um dos três objetos de interação do host anteriores é criado a partir de uma árvore de atividades chamada de programa de fluxo de trabalho. Usando esses tipos ou um host personalizado que encapsula , os fluxos de trabalho podem ser executados dentro de ActivityInstancequalquer processo do Windows, incluindo aplicativos de console, aplicativos baseados em formulários, Serviços do Windows ASP.NET sites e serviços WCF (Windows Communication Foundation).
Componentes de fluxo de trabalho no processo de host
Interação entre componentes do fluxo de trabalho
O diagrama a seguir demonstra como os componentes do fluxo de trabalho interagem uns com os outros.
No diagrama anterior, o Invoke método da classe é usado para invocar várias instâncias de fluxo de WorkflowInvoker trabalho. WorkflowInvoker é usado para fluxos de trabalho leves que não precisam de gerenciamento do host; Os fluxos de trabalho que precisam de gerenciamento do host (como Bookmark retomada) devem ser executados usando Run . Não é necessário esperar que uma instância de fluxo de trabalho seja concluída antes de invocar outra; O mecanismo de tempo de execução suporta a execução simultânea de várias instâncias de fluxo de trabalho. Os fluxos de trabalho invocados são os seguintes:
Uma Sequence atividade que contém uma WriteLine atividade infantil. Uma Variable das atividades dos pais está vinculada a uma InArgument atividade da criança. Para obter mais informações sobre variáveis, argumentos e vinculação, consulte Variáveis e argumentos.
Uma atividade personalizada chamada
ReadLine
. Uma OutArgument das atividades é retornada para o método deReadLine
chamada Invoke .Uma atividade personalizada que deriva da CodeActivity classe abstrata. O CodeActivity pode acessar recursos de tempo de execução (como rastreamento e propriedades) usando o CodeActivityContext que está disponível como um parâmetro do Execute método. Para obter mais informações sobre esses recursos de tempo de execução, consulte Workflow Tracking and Tracing e Workflow Execution Properties.