Pergunta

Nós construímos um sistema de pedido de subvenção para um cliente. Eles agora pediu para algumas funcionalidades fluxo de trabalho simples (duas aprovações necessárias antes da apresentação do pedido).

Eu dei um pouco sobre o design de banco de dados que eu usaria para codificar os requisitos de fluxo de trabalho de uma forma que iria oferecer o máximo de flexibilidade e reutilização, e eu estaria interessado em saber se há algum padrão de design existentes ou melhores práticas lá fora para este tipo de sistema. Alguma sugestão?

Nota: Esta é uma aplicação ASP.NET personalizado, e vamos certamente estar rolando a nossa própria solução de fluxo de trabalho. Eu não estou interessado em comprar em um componente, ou muito menos se mover essa coisa toda de uma plataforma como o SharePoint.

Foi útil?

Solução

Para não olhar para o o Windows Workflow Foundation seria tolo . Ela foi feita para exatamente o que você precisa.

Aqui está um ASP.NET específica ligação .

Outras dicas

Se a funcionalidade de fluxo de trabalho é tão simples, em seguida, a sua abordagem é suficiente. Mas se você quiser (ou se o cliente mais tarde pede) mais funcionalidades como:

  • Lembretes para aprovadores
  • Alertas para os administradores
  • escalações e realocações de tarefas
  • Os cancelamentos de tarefas
  • alocações baseados em regras
  • Acompanhamento de tarefas

então você pode ter que considerar um componente de fluxo de trabalho como Workflow Foundation .

Uma abordagem acadêmica para os padrões de fluxo de trabalho pode ser encontrada aqui e eles estão agrupados em quatro categorias:

Eu acho que a categoria mais interessante para o seu caso é os padrões de recursos.

Uma solução que tem funcionado bem no passado é criar grupos de homologação com os membros, códigos de aprovação como uma tabela de pesquisa simples, e-code suave a aprovação do Estado-máquina, de modo que cada passo resulta da atribuição de um código de aprovação para um item por um membro do grupo. Isso permite que os membros do grupo para a mudança e os caminhos de aprovação à mudança sem ter que re-code nada. Você também pode adicionar gatilhos de código e endpoints (via reflexo, por exemplo, a montagem nome + nome da classe + nome do método) para executar efeito colateral e se comprometer / ações de notificação a cada passo

Eu tenho uma consulta similar. Há um grupo de processos descontínuos com interdependências. Eu estou trabalhando em um fluxo de trabalho, como o sistema para estes processos batch.

Qual dos dois projetos seguintes é melhor:

  1. driven design de banco de dados onde cada processo atualiza seu status e outros detalhes em tabelas de banco de dados e outros processos consultar essas tabelas, ou

  2. A JMS ou mensagens abordagem baseada em processos se comunicam uns com os outros utilizando filas de mensagens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top