[开源.net工作流引擎] 关于工作流引擎取回审批的设计方案与实现过程
ccflow
2012-06-24
关于工作流引擎取回审批的设计方案与实现过程
需求背景 ------------------ 0, 本文中尽量避免审批概念,因为在我们认为没有审批节点或者审核节点,任何节点都是数据采集. 1, 取回处理,也可以称呼为提前处理,是对于拥有绝对审批权限的人,为了工作的需要直接的从下属工作人员中取回工作而直接处理。 2,这种做法是违反规范的,但是在一些场景下是需要的。比如: 1, 下属长期不处理。 2, 下属在外地. 3, 特殊的情况下不需要让特定下属知道此事件. 可能遇到的情况: ------------------- 1, 被取回的点有多个人处理? 2, 什么样的数据范围可以被取回? 怎么去控制? 3, 工作流程引擎是不完全计算下几步骤的处理人员的. 4, 特殊权利的节点需要,需要指定,并且访问规则 必须是按人员,或者按岗位. 处理方案: -------------------- 1, 此功能需要后台设置与前台处理两大部分. 2, 后台设置,要选择特殊权限的节点,此节点不能是开始节点也不能是第二个节点. 3, 以特殊权限的节点,确定可以取回工作的节点,一个特殊的节点可以对应多个可以取回工作的节点。 CCFlow工作流引擎处理案例. -------------------- 1, 增加了一个类 D:\ccflow\Components\BP.WFV4\WF\Personalize\GetTask.cs 此类映射到WF_Node物理表. 2, 在流程设计器里增加一个工作取回规则设置. http://localhost/ccflow/WF/Admin/Personalize/GetTask.aspx ,用来设置取回处理的工作规则. 3, 在前台增加了取回处理工作界面 http://localhost/ccflow/WF/GetTask.aspx 它的操作步骤: 1, 首先选择要处理的流程. 2, 系统就会列出来可以取回的点,根据系统设置的规则,如果是空的,则此人没有此权限. 4, 取回处理就类于跳转发送,直接放在当前操作人中的待办工作里. -- OVER -- |