我们目前正在构建一个使用非简单审批流程的应用程序,该流程涉及多个级别的审批,返回,审核,通知等。什么是采用WF的Web应用程序的最佳设计?
由于上述要求,我们被要求使用的工作流框架也可以促进流程的透明度。
在我们已成功纳入工作流中的原型,它工作正常。但是,我们无法确定应该向用户提供的操作。例如,我有以下接收操作:create(),managerApprove(),RAApprove(),ORMApprove()..现在如果我按顺序调用它们,使用正确的用户名,那么它们将工作。显然,如果我不按顺序调用它们,那么它将抛出一个FaultException,因为它没有处于正确的状态。问题是,我怎么会知道哪些功能可在用户界面中暴露 - 比方说,如果目前正在等待经理批准然后就显示了管理员的批准按钮...
作为一种变通方法,我创建另一个WCF服务,它从数据库中检索相同的数据,然后确定正确的UI状态(用户可以执行哪些操作)。我认为这是逻辑的重复,因为这已经在WF中了。
而且,如果WF改变那么我单独的WCF服务可能可能会破坏。例如,如果我在工作流中切换批准订单,那么我需要更新WCF服务中的逻辑。否则,它将显示无效的页面状态,并且单击批准将调用错误的方法并导致FaultException。
任何帮助将非常感激......我真的很新WF4。
UPDATE:
我的同事把我的问题是这样的:
什么是一个Web应用程序,采用WF最好的设计?
为什么WF正在考虑 的主要原因 - 所涉及的工作流程长时间运行 - 工作流是人工工作流 - 他们需要协调真实的人 的行动 -
而且过程的透明度,应该如何工作流程整合与用户界面? - UI如何知道应该在哪个状态以及哪些页面显示哪些用户?
我想这是一种方式。但它有点像黑客。 – Mel 2011-05-26 06:12:01
你是对的,因为它是。无论如何没有好的方法来完成工作。 – Maurice 2011-05-26 07:16:52
我一直希望有更好的办法......我开始觉得WF实际上是在伤害设计......感觉我们通过使用WF来做正确的事情,但也被迫做了“错误”的事情作为副作用。 – Mel 2011-05-26 07:54:44