Partilhar via


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 única aprovação, uma aprovação por quórum (uma percentagem de um conjunto de aprovantes), e um processo complexo de aprovação que consiste numa sequência de quórum e aprovação única.

Detalhes da amostra

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

Um fluxo de trabalho de processo de aprovação de documentos

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 que está hospedado pela aplicação gerenciadora de aprovações.

  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 da aplicação 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 Gestor de Aprovação ao clicar com o botão direito do rato no projeto ApprovalManager no Gerenciador de Soluções e selecionar Depurar->Iniciar nova instância no menu de contexto.

    Aguarde que o gestor indique que está pronto.

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 para o ApprovalClient\Bin\Debug folder and execute two instances of 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 para o Cliente de Aprovação\Bin\Debug folder and execute three instances of 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 para os outros dois, utilize UserType2.

  6. No cliente UserType1, selecione o tipo de aprovação de quórum no menu suspenso e digite um nome e o 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. Nos clientes UserType2, aparece um documento em espera de 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 para o ApprovalClient\Bin\Debug folder and execute four instances of 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 de cliente UserType1, em dois usos utilize 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. Nos clientes UserType2, aparece um documento em espera de 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 documento do cliente UserType3. 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.