工作流 activiti6.0 用户任务分配方式总结(单人任务、多人任务)
根据xml图和代码解释分配逻辑。
几种参与者的含义
assignee表示负责人,是实际在处理这个任务的人员。因为三个和尚没水吃,activiti里严格遵守专事专办。从根本上禁止一个任务多人负责,最后谁都不负责的问题。
candidate表示候选人,适用于客服、销售之类抢单的场景。一个单子几个人都可以看到,谁抢到算谁的。谁抢单多谁赚得多。canidates里保存哪些人可以抢单,assignee为空时,这些候选人都可以抢,哪个抢到了,就把assignee设置为这个人,等于告诉别人,不用再抢了,已经有人抢走了。所有设置了assignee的任务,用candidateUser()不会查询出来,就是不想让别人看到别人抢走的单据,心生怨恨。抢到单子的人,也可以通过unclaim()释放,这样assignee又变成null了,其他人又可以抢了。
identitylink里还有一种partcipant类型,用来记录参与者,如果一个人处理过一个任务,就会在identityLink表里记录为task对应的流程的参与者,可以通过createProcessInstanceQuery().involvedUser("zhangsan")查询到某个人经手过的所有流程。
task里有一个owner字段,记录着这个任务的原负责人,当任务的负责人有事,无法亲手处理问题,就会把这个任务委托给其他人,被委托后的任务,assignee字段对应委托后的负责人,owner记录着委托前的原负责人。
historicProcessInstance里有一个starterUserid字段,记录了流程发起人。
3. 国内工作流常用操作的名词解释
流程操作 | 描述 | |
---|---|---|
认领 | 当前节点候选人或归属于候选组的人,对当前节点进行认领 | |
取消认领 | 当前节点处理人,取消自己处理任务的权限,使任务进入待认领状态 | |
审批 | 当前节点处理人,对当前流程节点进行审核操作,完成后进入下一节点 | |
驳回/回退 | 当前节点处理人,将流程驳回至之前已经处理过的任务节点,要求重新处理 | |
委派/委托 | 当前节点处理人,将自己的主办或者经办权限转移委托至别的用户代为处理,处理完后回到当前处理人手中,并由当前处理人处理完后进入下一节点 | |
转办 | 当前节点处理人,将操作权限转给别人处理,处理完后进入下一节点(自己不再处理) | |
催办 | 对于时效要求高的流程,发起人可催办提醒当前节点处理人,一般以消息通知方式提醒处理人 | |
撤销 | 发起人操作,可以撤销当前流程 | |
取回 | 当前节点上一节点处理人操作,当前节点处理人还未处理,上一节点处理人可以将其退回自己手中重新操作(取回重办) | |
终止 | 当前节点处理人,终止当前流程 | |
抄送 | 当前节点处理人,处理完成之后将处理结果抄送给其他人,这里创建备注信息,并给所有抄送人创建子任务(待阅),子任务不影响流程流转 | |
向前加签 | 当前节点处理人,需要让其他人核对流程,其他人核对完成后,回到当前节点处理人手中,当前节点处理人处理完后进入下一节点 | |
向后加签 | 当前节点处理人,需要让其他人核对流程,其他人核对完成后,直接进入下一节点 | |
会签 | 一般的会签就是指在流程管理中发起人可以同时对多个人发起会签,多个人可以同时处理,只有所有负责人审批通过,审批节点才会通过。(支持一票否决/一票通过/投票按照百分比给出结论通过或不通过) | |
交接 | 流程管理员权限,管理员将离职或换岗员工的待执行、待领取、代办他人、委托他人代办的任务转交给接管人,并删除与该员工相关的委托代理关系。交接员工所有直接参与的流程实例中对应的参与者将自动由系统修改为接管人。(强制) | |
暂存 | 复杂表单,一次性填写不完,需要保存草稿功能,开始节点的暂存 | 测试提交 |
单人任务:
1.1 用请假来作为实例说明:例如小公司就是 员工提出申请->技术部王总审核->公司总经理李大民审核。
这种情况我们可以使用硬编码的方式来进行流程图的设计。
代码:
1.2