在流程启动获得流程实例ID后,一般根据流程实例ID找到首节点任务会比较准确,并且最好同时根据首节点任务名称这两个条件获得任务,并且是返回唯一记录。
还有一些做法是通过查找任务接口获得findPersonalTasks,我个人觉得那样不是很准确,好像当申请人在审批的时候,同时有被回退修改的任务时会有点冲突。而且个人不太喜欢用taskList.get(0);这种方式去获得一个任务。最好要任务查询接口中的返回唯一记录接口。熟悉Hibernate的朋友应该不会陌生这个方法uniqueResult()。
附程序参考:
Task task = null;
TaskQuery taskQuery = this.taskService.createTaskQuery();
taskQuery.processInstanceId(processInstanceId);
taskQuery.activityName(firstTaskNodeName);
taskQuery.orderDesc(TaskQuery.PROPERTY_PRIORITY);
task = taskQuery.uniqueResult();
用processInstanceId靠谱一些。findPersonalTasks()不一定是当前流程的第一个任务
还有一些做法是通过查找任务接口获得findPersonalTasks,我个人觉得那样不是很准确,好像当申请人在审批的时候,同时有被回退修改的任务时会有点冲突。而且个人不太喜欢用taskList.get(0);这种方式去获得一个任务。最好要任务查询接口中的返回唯一记录接口。熟悉Hibernate的朋友应该不会陌生这个方法uniqueResult()。
附程序参考:
Task task = null;
TaskQuery taskQuery = this.taskService.createTaskQuery();
taskQuery.processInstanceId(processInstanceId);
taskQuery.activityName(firstTaskNodeName);
taskQuery.orderDesc(TaskQuery.PROPERTY_PRIORITY);
task = taskQuery.uniqueResult();
用processInstanceId靠谱一些。findPersonalTasks()不一定是当前流程的第一个任务