Início > Workflow Foundation > Workflow Foundation – Sequence

Workflow Foundation – Sequence

Seguindo uma série de artigos sobre WF4, nesse artigo pretendo abordar sobre o WF Sequence.

Caso você deseje ver os artigos anteriores, segue os links:

O WF Sequence já existia no .NET 3.5. Esse WF executa um conjunto de ações em uma determinada ordem informada e sem a possibilidade de retornar a um passo anterior. Nesse tipo de WF podemos utilizar qualquer atividade de decisão (ForEach, If, Switch, While, etc), atividades de construção (Parallel por exemplo) ou até atividade customizadas.

Esse WF é recomendado para resolução de processos com complexidade moderada ou processos sem intervenção humana (diferente do Flowchart).

Vamos fazer um exemplo de WF Sequence, no qual vamos informar um código de produto e seremos informado se o mesmo existe disponível no estoque.

Abra o Visual Studio e crie um projeto do tipo WorkFlow Console Application com o nome wfVerificarEstoque. Após o projeto criado veja que um arquivo chamado Workflow1.xaml foi criado, exclua esse arquivo. Clique no projeto e em add new item. Adicione um item do tipo Activity com o nome wfVerificarEstoque.xaml. Abra esse arquivo e na ToolBox arraste para onde está escrito “Drop activity here” um componente Sequence que se encontra na toolbox na guia Control Flow.

Selecione o componente Sequence e crie uma variável com o nome QuantidadeEstoque do tipo Int32 e em seguida selecione a opção arguments e crie um argumento chamado codigoProduto do tipo Int32 com o direction In.

Arraste para dentro do Sequence um componente Switch. No componente Switch em Expression escreva  codigoProduto. Logo abaixo em Case value, adicione valor 1 e em seguida valor 2. Estamos criando um Switch (case) com se estive criando em C# ou VB.Net.

Com o case criado, arraste para dentro de cada case um componente Assign que se encontra na ToolBox na guia Primitives. No Case 1 no Assign escreva em To QuantidadeEstoque e na expressão VB coloque o valor 0. Faça o mesmo para o segundo case mudando o valor para 2. Nosso case deve ficar como da imagem abaixo:

Abaixo do Switch e dentro do Sequence arraste um componente If. Em Condition coloque QuantidadeEstoque > 0. Arraste um componente WriteLine para dentro do If na opção Then e outro WriteLine para dentro do If na opção Else. No WriteLine dentro do Then escreva  em Text: “Produto em Estoque” e no WriteLine dentro do Else escreva “Produto em falta no estoque”.

Nosso WF deve ficar igual da imagem abaixo:

Agora precisamos configurar a chamada ao nosso WF. Como criamos um arguments chamado codigoProduto e  será necessário passar um valor para esse argumento em nosso WF. Para isso utilizamos a class Dictionary que faz parte do namespace “System.Collections.Generic”.

Abra o arquivo Program.cs. e em using adicione a namespace citada acima e em seguida escreva o código abaixo:

        static void Main(string[] args)
        {
            int intCodigoProduto = 2;

            Dictionary<string, object> dtc = new Dictionary<string, object>();

            dtc.Add("codigoProduto", intCodigoProduto);

            WorkflowInvoker.Invoke(new wfVerificarEstoque(), dtc);

            Console.ReadLine();
        }

Veja que criamos um Dictionary, com uma string e um objeto. No campo string escrevemos o mesmo nome de nosso arguments criado no WF e o objetc será o valor que passaremos para o WF. Observe que o dictionary recebe o mesmo nome e o mesmo tipo de nosso arguments, caso isso não aconteça, um erro irá acontecer.

Compile seu projeto e o console exibirá a seguinte frase: “Produto em Estoque”. Caso altere o valor de intCodigoProduto para 1 a frase será “Produto em falta no Estoque”.

Download disponível aqui.

Bem pessoal espero que tenham gostado. Até a próxima.

Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

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: