Fluxos de trabalho de fluxograma
Um fluxograma é um paradigma bem conhecido para projetar programas. A atividade Fluxograma é normalmente usada para implementar fluxos de trabalho não sequenciais, mas pode ser usada para fluxos de trabalho sequenciais se nenhum FlowDecision
nó for usado.
Estrutura do fluxo de trabalho do fluxograma
Uma atividade de fluxograma é uma atividade que contém uma coleção de atividades a serem executadas. Os fluxogramas também contêm elementos de controle de fluxo, como FlowDecision e FlowSwitch<T> que a execução direta entre atividades contidas com base nos valores das variáveis.
Tipos de nós de fluxo
Diferentes tipos de elementos são usados dependendo do tipo de controle de fluxo necessário quando o elemento é executado. Os tipos de elementos de fluxograma incluem:
FlowStep
- Modela uma etapa de execução no fluxograma.FlowDecision
- Execução de ramos com base em uma condição booleana, semelhante a If.FlowSwitch
– Execução de filiais com base em um switch exclusivo, semelhante ao Switch<T>.
Cada link tem uma Action
propriedade que define uma ActivityAction que pode ser usada para executar atividades filho e uma ou mais Next
propriedades que definem qual elemento ou elementos executar quando o elemento atual terminar a execução.
Criando uma sequência de atividades básica com um nó FlowStep
Para modelar uma sequência básica na qual duas atividades são executadas por sua vez, o FlowStep
elemento é usado. No exemplo a seguir, dois FlowStep
elementos são usados para executar duas atividades em sequência.
<Flowchart>
<FlowStep>
<Assign DisplayName="Get Name">
<Assign.To>
<OutArgument x:TypeArguments="x:String">[result]</OutArgument>
</Assign.To>
<Assign.Value>
<InArgument x:TypeArguments="x:String">["User"]</InArgument>
</Assign.Value>
</Assign>
<FlowStep.Next>
<FlowStep>
<WriteLine Text="Hello, " & [result]/>
</FlowStep>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Criando um fluxograma condicional com um nó FlowDecision
Para modelar um nó de fluxo condicional em um fluxo de trabalho de fluxograma (ou seja, para criar um link que funcione como o símbolo de decisão de um fluxograma tradicional), um FlowDecision nó é usado. A Condition propriedade do nó é definida como uma expressão que define a condição, e as True propriedades e False são definidas como FlowNode instâncias a serem executadas se a expressão for avaliada como true
ou false
. O exemplo a seguir mostra como definir um fluxo de trabalho que usa um FlowDecision nó.
<Flowchart>
<FlowStep>
<Read Result="[s]"/>
<FlowStep.Next>
<FlowDecision>
<IsEmpty Input="[s]" />
<FlowDecision.True>
<FlowStep>
<Write Text="Empty"/>
</FlowStep>
</FlowDecision.True>
<FlowDecision.False>
<FlowStep>
<Write Text="Non-Empty"/>
</FlowStep>
</FlowDecision.False>
</FlowDecision>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Criando um switch exclusivo com um nó FlowSwitch
Para modelar um fluxograma no qual um caminho exclusivo é selecionado com base em um valor correspondente, o FlowSwitch<T> nó é usado. A Expression propriedade é definida como um Activity<TResult> com um parâmetro type de que define o valor a ser correspondido às opções contra Object . A Cases propriedade define um dicionário de chaves e FlowNode objetos para corresponder à expressão condicional e um conjunto de FlowNode objetos que definem como a execução deve fluir se o caso dado corresponder à expressão condicional. O FlowSwitch<T> também define uma Default propriedade que define como a execução deve fluir se nenhum caso corresponder à expressão de condição. O exemplo a seguir demonstra como definir um fluxo de trabalho que usa um FlowSwitch<T> elemento .
<Flowchart>
<FlowSwitch>
<FlowStep x:Key="Red">
<WriteRed/>
</FlowStep>
<FlowStep x:Key="Blue">
<WriteBlue/>
</FlowStep>
<FlowStep x:Key="Green">
<WriteGreen/>
</FlowStep>
</FlowSwitch>
</Flowchart>