Windows Workflow Foundation (WF) – Parte 3 – Flowchart using Visual Studio Designer

Publicado em 15/01/2012

4


Olá pessoal. Tudo certo!?

Este é o terceiro post dessa série sobre Windows Workflow Foundation. Nos posts anteriores, mostrei como criar workflows no código ou em Xaml. Neste, mostro como criar workflows usando o designer que está no Visual Studio.

Sobre Flowchart

Flowchart workflows, como o nome sugere, são atividades conectadas as demais através de nós de decisão. Diferente dos fluxos que vimos até aqui, onde uma atividade é executada após a outra (de forma sequencial), as atividades são executadas conforme as “decisões” são tomadas.

Como criar um flowchart workflow usando o designer

Depois de adicionar um “workflow” a seu projeto no Visual Studio (acho que você consegue fazer isso sozinho), abra este usando o designer.

Na toolbox há um conjunto de ferramentas específico para flowchart.

image

Arraste o elemento “Flowchart” para o editor e … pronto!

image

Perfeito!

Fazendo alguma coisa..

Para executar alguma coisa no flowchart, basta inserir o elemento que desejamos executar. No caso, vou inserir o elemento Writeline. Observe:

image

Como você pode ver, o Visual Studio está dizendo que algo está errado! Faltou conectar os elementos do fluxo (esse é o diferencial do Flowchart). Para fazer isso, posicione os elementos do elemento origem (Start) e arraste um dos conectores até o elemento destino (WriteLine)

image

Agora sim!

Para executar o fluxo, é necessário algo bem semelhante ao que já fizemos nos posts anteriores. Observe:

using System;
using System.Activities;

namespace FlowChartDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            WorkflowInvoker.Invoke(new Workflow1());
            Console.ReadLine();
        }
    }
}

O nome do fluxo é definido no próprio editor do VS.

Tomando decisões

Com Flowchart, decisões são elementos fundamentais. Insira o elemento FlowDecision.

image

A conexão, fiz da forma que já havíamos já indicada.

Com este elemento selecionado, podemos indicar a condição e “labels” para true e false. Observe:

image

Voltando ao exemplo que já usamos nos posts anteriores, preenchi a as propriedades dessa forma:

image

Bacana, não?!

Completei o fluxo assim:

image

Claro que é um exemplo “bobo”, mas poderia ser expandido facilmente para algo mais útil com atividades relacionadas a negócio.

Lembre-se, este mesmo fluxo poderia ser construído em Xaml.

Queria um post mais “levinho”. Acho que atingimos o objetivo. Daqui para frente essa série deverá “pegar pesado”.

Era isso!

Etiquetado:
Publicado em: Post