Processo de aprovação de documentos

O exemplo DocumentApprovalProcess demonstra o uso de muitos recursos do Windows Workflow Foundation (WF) e do Windows Communication Foundation (WCF) juntos. Juntos, eles implementam um cenário de processo de aprovação de documentos. Um aplicativo cliente pode enviar documentos para aprovação e aprovar documentos. Existe uma aplicação de gestor de aprovação para facilitar as comunicações entre clientes e para fazer cumprir as regras do processo de aprovação. O processo de aprovação é um fluxo de trabalho que pode executar vários tipos de aprovação. Existem atividades para obter uma aprovação única, uma aprovação de quórum (uma porcentagem do conjunto de aprovadores) e um processo de aprovação complexo que consiste em quórum e aprovação única em uma sequência.

Detalhes da amostra

O gráfico a seguir demonstra o fluxo de trabalho do processo de aprovação de documentos:

A document approval process workflow

Do ponto de vista do cliente, o processo de aprovação funciona da seguinte forma:

  1. Um cliente se inscreve para ser um usuário no sistema de processo de aprovação.

  2. Um cliente WCF envia para um serviço WCF hospedado pelo aplicativo gerenciador de aprovação.

  3. Um ID de usuário exclusivo é retornado ao cliente. O cliente pode agora participar nos processos de aprovação.

  4. Uma vez associado, um cliente pode enviar um documento para aprovação usando processos de aprovação únicos, quórum ou complexos.

  5. Um botão na interface do cliente é clicado, iniciando uma instância de fluxo de trabalho em um host de serviço de fluxo de trabalho do cliente.

  6. O fluxo de trabalho envia uma solicitação de aprovação para o aplicativo do gerenciador de aprovação.

  7. O gerenciador de fluxo de trabalho inicia um fluxo de trabalho por conta própria para representar um processo de aprovação.

  8. Assim que o fluxo de trabalho de aprovação do gerente é executado, os resultados são enviados de volta ao cliente.

  9. O cliente exibe os resultados.

  10. Um cliente pode receber um pedido de aprovação e responder ao pedido a qualquer momento.

  11. Um serviço WCF hospedado no cliente pode receber uma solicitação de aprovação do aplicativo gerenciador de aprovação.

  12. As informações do documento são apresentadas no cliente para revisão.

  13. O usuário pode aprovar ou rejeitar o documento.

  14. Um cliente WCF é usado para enviar uma resposta de aprovação de volta para o aplicativo do gerenciador de aprovação.

Do ponto de vista do pedido do gestor de aprovação, o processo de aprovação funciona da seguinte forma:

  1. Um cliente solicita a participação no sistema do processo de aprovação.

  2. Um serviço WCF no gerenciador de aprovação recebe uma solicitação para fazer parte do sistema do processo de aprovação.

  3. Um ID exclusivo é gerado para o cliente. As informações do usuário são armazenadas em um banco de dados.

  4. O ID exclusivo é enviado de volta ao usuário.

  5. É recebido um pedido de aprovação. O gestor de aprovação executa um processo de aprovação.

  6. Uma solicitação de aprovação é recebida pelo gerente de aprovação, iniciando um novo fluxo de trabalho.

  7. Dependendo do tipo de solicitação (simples, quórum ou complexa), uma atividade diferente é executada.

  8. As atividades Enviar e Receber com correlação são usadas para enviar a solicitação de aprovação ao cliente para revisão e receber a resposta.

  9. O resultado do fluxo de trabalho do processo de aprovação é enviado ao cliente.

Usando o exemplo

Para configurar o banco de dados

  1. Em um prompt de comando do Visual Studio aberto com privilégios de administrador, navegue até esta pasta DocumentApprovalProcess e execute Setup.cmd.

Para configurar o aplicativo

  1. Usando o Visual Studio, abra o arquivo de solução DocumentApprovalProcess.sln.

  2. Para criar a solução, pressione CTRL+SHIFT+B.

  3. Para executar a solução, inicie o aplicativo Gerenciador de Aprovação clicando com o botão direito do mouse no projeto ApprovalManager no Gerenciador de Soluções e clicando em Depurar-Iniciar> nova instância no menu do botão direito do mouse.

    Aguarde a saída do gerente para informar que ela está pronta.

Para executar o cenário de aprovação única

  1. Abra um prompt de comando com permissão de administrador.

  2. Navegue até o diretório que contém a solução.

  3. Navegue até a pasta ApprovalClient\Bin\Debug e execute duas instâncias de ApprovalClient.exe.

  4. Clique em descobrir, aguarde até que o botão de inscrição esteja ativado.

  5. Digite qualquer nome de usuário e clique em assinar. Para um cliente, use UserType1 e o outro tipo UserType2.

  6. UserType1 No cliente, selecione o tipo de aprovação única no menu suspenso e digite um nome e conteúdo do documento. Clique em Solicitar aprovação.

  7. UserType2 No cliente, aparece um documento aguardando aprovação. Selecione-o e pressione aprovar ou rejeitar. Os resultados devem aparecer no UserType1 cliente.

Para executar o cenário de aprovação de quórum

  1. Abra um prompt de comando com permissão de administrador.

  2. Navegue até o diretório que contém a solução.

  3. Navegue até a pasta ApprovalClient\Bin\Debug e execute três instâncias de ApprovalClient.exe.

  4. Clique em descobrir, aguarde até que o botão de inscrição esteja ativado.

  5. Digite qualquer nome de usuário e clique em assinar. Para um cliente use UserType1 e os outros dois tipo UserType2.

  6. No cliente, selecione o UserType1 tipo de aprovação de quórum no menu suspenso e digite um nome e conteúdo do documento. Clique em Solicitar aprovação. Isso solicita que os dois UserType2 clientes aprovem ou rejeitem o documento. Embora ambos os UserType2 clientes devam responder, apenas um cliente deve aprovar o documento para que ele seja aprovado.

  7. UserType2 Nos clientes, aparece um documento aguardando aprovação. Selecione-o e pressione aprovar ou rejeitar. Os resultados devem aparecer no UserType1 cliente.

Para executar o cenário de aprovação complexo

  1. Abra um prompt de comando com permissão de administrador.

  2. Navegue até o diretório que contém a solução.

  3. Navegue até a pasta ApprovalClient\Bin\Debug e execute quatro instâncias de ApprovalClient.exe.

  4. Clique em descobrir, aguarde até que o botão de inscrição esteja ativado.

  5. Digite qualquer nome de usuário e clique em assinar. Para um uso UserType1de cliente , em dois usos tipo UserType2, e no último uso UserType3.

  6. UserType1 No cliente, selecione o tipo de aprovação única no menu suspenso e digite um nome e conteúdo do documento. Clique em Solicitar aprovação.

  7. UserType2 Nos clientes, aparece um documento aguardando aprovação. Selecione-o e pressione aprovar, o documento é passado para o UserType3 cliente.

    Se o documento for aprovado pelo primeiro UserType2 quórum, o documento é passado ao UserType3 cliente.

  8. Aprovar ou rejeitar o UserType3 documento do cliente. Os resultados devem aparecer no UserType1 cliente.

Para limpar

  1. Em um prompt de comando do Visual Studio, navegue até a pasta DocumentApprovalProcess e execute Cleanup.cmd.