今天看activiti的act_ru_task表,发现有一个parent_task_id_字段,比较好奇,就研究了一番。发现原来是可以给一个task创建subtask
那么他的适用场景就是
- 创建自子任务
- 创建抄送任务
- 任务分裂
上代码,如何实现创建子任务,为Zl用户创建一个任务
Task newtask = taskService.newTask(); newtask.setAssignee("zl"); newtask.setName("xinjia"); newtask.setParentTaskId(parentTask.getId());//父任务id taskService.saveTask(newtask);
注意,新建的task不影响主流程的推进,就是父任务结束了流程也会向后面流转,子任务也不会结束
正是因为以上原因,可以用于抄送任务,不影响主流程进行。
也可以用于任务的裂变。
根据任务id,查询子任务
List<Task> subTaskList = taskService.getSubTasks("taskid");
结束子任务,根据上面指定的zl查询
List<Task> list = taskService.createTaskQuery().taskAssignee("zl").list(); for(Task task:list){ taskService.complete(task.getId()); }