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