Início > Workflow Foundation > Workflow Foundation – Flowchart

Workflow Foundation – Flowchart

Conforme prometido no artigo anterior, vamos demonstrar um WF Flowchart.

Flowchart é um novo tipo de workflow disponibilizado no .Net 4.0.  Esse workflow é recomendado para cenários onde exista a necessidade de interação humana.

Vamos a um exemplo prático.

Abra o Visual Studio e crie um projeto do tipo WorkFlow Console Application, veja a imagem abaixo:

Criamos um projeto com o nome wfValidarUsuario. Um arquivo Workflow1.xmal foi criado. Apague esse arquivo e adicione um novo arquivo do tipo Activity com o nome wfValidarUsuario.xmal. Será nesse arquivo que vamos criar nosso WF.

Abra esse arquivo e na ToolBox arraste para onde está escrito “Drop activity here” o componente Flowchart. Você verá uma área com uma bola verde e um escrito Start. Dentro dessa área coloque os seguintes componentes:

  • 3 WriteLine;
  • 1 Assign;
  • 1 FlowDecision;

Com esses componentes vamos criar nosso primeiro workflow.

Primeiramente vamos ligar nosso worklow, ligue um componente WriteLine com a opção “Start”, para isso basta clicar o componente, veja que será exibido 4 opção em sua volta, clique em uma delas e arraste para um WriteLine. Em seguida ligamos esse WriteLine com o componente Assign. Esse componente irá setar um valor em uma variável, mas sobre isso falamos depois.

Agora vamos ligar o Assign ao FlowDecision. Veja que esse componente exibe a opção True e False, vamos ligar a opção true a um WriteLine e a opção false ao outro WriteLine e por fim ligamos o WriteLine que foi ligado ao FlowDecision da opção False com o nosso primeiro WriteLine.

Veja na imagem abaixo como deve ficar nosso workflow.

Veja que um sinal de alerta vermelho aparece em Assign, isso porque não configuramos esse componente, vamos a ele então. Se você o artigo anterior vai se recordar que comentamos sobre variáveis, vem vamos utilizar uma aqui.

Veja que na parte inferior da tela as opções variables, Arguments e Imports. Selecione o componente FlowChart e clique em variables. Crie uma variavel chamada senha do tipo string. Lembre-se podemos criar as variareis por nível, nesse caso criamos uma que todos os componentes dentro do FlowChart consegue visualiza-la.

Agora clique em Assign no campo To coloque nossa variável Senha e no campo “Enter a VB expression” coloque Console.ReadLine(). Como expliquei no artigo anterior, mesmo que nosso workflow seja em C# devemos escrever as expressões em VB.Net.

Faltam dois passos para finalizar nosso workflow, o primeiro é configurar o Decision, clique nele com o botão direito do mouse em propriedades, clique na propriedade Condition e coloque o seguinte código Senha = “123” (lembrando, tem que ser VB.Net).

E para finalizar, precisamos chamar nosso workflow e para isso vamos usar a classe Program.cs. Coloque o seguinte código:

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

Nosso código apenas Invoka o workflow e depois pede para o console aguardar para que possamos visualizar o resultado.

Veja abaixo uma imagem de como ficou nosso workflow finalizado:

Agora podemos executar nosso workflow. Esse workflow terá a interação com o usuário. Enquanto não digitamos a senha 123 ele irá retornar para um passo anterior (no nosso caso pedir a senha novamente), veja um exemplo do console em execução:

O código fonte está disponível para download aqui.

Obrigado e até a próxima.

Anúncios
  1. Nenhum comentário ainda.
  1. novembro 15, 2010 às 11:39 pm

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: