2008-10-23 119 views
1

我们为客户建立了赠款申请系统。他们现在要求提供一些简单的工作流程功能(在申请提交之前需要两个批准)。工作流体系结构的建议?

我已经对数据库设计给了一些想法,我会用它来提供最大的灵活性和可重用性的方式来编码工作流需求,并且我很想知道是否有任何现有的设计模式或此类系统的最佳做法。有什么建议么?

注意:这是一个自定义的ASP.NET应用程序,我们一定会推出我们自己的工作流程解决方案。我对购买组件并不感兴趣,更不用说把它整合到像SharePoint这样的平台上。

回答

0

一个解决方案,在过去一直行之有效是创建批准组与成员,批准代码作为一个简单的查找表,和软码批准状态机,以便从一个核准代码的分配的每个步骤的结果到一个小组成员的项目。这允许组成员资格发生变化,批准路径发生变化而无需重新编码任何内容。你也可以加入一些代码触发器和端点(通过反射,如装配名+类名+方法名),在每一步

4

执行副作用和提交/通知操作如果工作流的功能是如此简单,然后你的方法是足够。但是,如果你想(或者客户后询问)更多的功能,如:

  • 提醒给审批
  • 通知管理员
  • 升级和任务分配
  • 取消
  • 规则的重新分配基于分配
  • 跟踪任务

那么你可能不得不考虑像Workflow Foundation这样的工作流组件。

的学术方法,以工作流模式可以发现here和他们分成四类:

我认为,越多您的案例的特色类别是资源模式。

0

我有一个类似的查询。有一组相互依赖的批处理过程。我正在为像这些批处理过程的系统工作。

以下两种设计哪个更好:

  1. 数据库驱动的设计,其中每个进程更新它的状态,并在数据库表和其他过程的其他细节查询这些表,或

  2. 一个JMS或基于消息传递的方法,其中进程使用消息队列彼此进行通信。