流程实例、任务的执行:
- 启动流程实例
- 查询我的个人任务(直接指定办理人)
- 查询我的个人任务(使用流程变量)
- 查询我的个人任务(使用类)【含认领任务功能】
- 总结(个人任务)
- 分配组任务进行查询(使用指定办理人)
- 分配组任务进行查询(使用流程变量)
- 分配组任务进行查询(使用类)
- 总结(组任务)
- 办理任务
- 查询流程状态(判断流程正在执行,还是结束)
- 流程实例的挂起或激活
- 总结(流程实例,任务的执行)
一、启动流程实例
图示:
代码片段:
说明:
操作数据库的act_ru_execution表,如果是用户任务节点,同事也会在act_ru_task添加一条记录;
二、查询我的个人任务(直接指定办理人)
图示:
流程图中任务节点的配置:
代码片段:
说明:
1)因为是任务查询,所以从ProcessEngine中应该得到TaskService
2)使用TaskService获取到任务查询对象TaskQuery
3)为查询对象添加查询过滤条件,使用taskAssignee指定任务的办理者(即查询指定用户的待办任务),同时可以添加分页排序等过滤条件
4)调用list方法执行查询,返回办理者为指定用户的任务列表
5)任务ID、名称、办理人、创建时间可以从act_ru_task表中查到
6)在这种情况下,ProcessInstance相当于Execution
7)如果assignee属性为部门经理,结果为空。因为现在流程只到了“填写请假申请”阶段,后面的任务还没有执行,即在数据库中没有部门经理可以办理的任务,所有查询不到
8)一个Task节点和Execution节点是1对1的情况,在task对象中使用Execution_来表示他们之间的关系
9)任务ID在数据库act_ru_task中对应“ID_”列
附加:
在activiti任务中,主要分为两大类查询任务(个人任务和组任务两种):
1、确切指定了办理者的任务,这个任务将成为指定者的私有任务,即个人任务;
2、无法指定具体的某一个人来办理的任务,可以把任务分配给几个人或者一到多个小组,让这个范围内的用户可以选择性(如有空余时间时)来办理这类任务,即组任务
先知道个人任务的查询和办理,组任务的操作后面讲;
三、查询我的个人任务(使用流程变量)
图示:
流程图中任务节点的配置:
代码片段:
说明:
在开发中,可以在页面中指定下一个任务的办理人,通过流程变量设置下一个任务的办理人(后面讲解流程变量)
四、查询我的个人任务(使用类)
图示: