我必须更改流程定义,因此用户任务现在将具有2个新的局部变量。
但是它干扰了系统中已经存在的那些任务,因此没有这两个新变量。
我在这里有2个选择:
OR
但是我不确定哪种方法更合适?
输入非常有帮助。
编辑:
例如,用例是查找分配的任务。在当前的实现中,它简单地是:
taskService.createTaskQuery().taskAssignee(userId).singleResult()
之所以有效,是因为一次只能将一个任务分配给用户。
现在,在新要求中,可以分配多个任务,用户当前正在其中一项。因此,我使用了两个像这样的新任务变量:
Task currentTask = taskService.createTaskQuery().taskAssignee(userId)
.taskVariableValueEquals("current", true).singleResult();
if(currentTask == null){
List<Task> unsuspendedTasks = taskService.createTaskQuery().taskAssignee(userId)
.taskVariableValueEquals("suspended", false).list();
if(!CollectionUtils.isEmpty(tasksAssignedToUser)) {
sortTasksBasedOnPriorityAndCreateTime(tasksAssignedToUser);
currentTask = tasksAssignedToUser.get(tasksAssignedToUser.size() - 1);
}
}
因此,我们首先查询将变量“ current”设置为true的任务。如果没有这样的任务,那么我们将查询将变量“ suspended”设置为false的任务,并对这些任务进行排序,然后选择第一个。
但是对于已经存在的任务,“当前”和“已暂停”这两个变量将不可用。
答案 0 :(得分:0)
您似乎正在尝试为新的流程定义修改现有的自定义代码。如果您的代码与流程紧密结合-如您所描述的有关任务变量的说明。我建议您为新过程创建另一个bean。这样,您就可以使用新流程而不会影响旧流程的逻辑。