Мне нужно изменить определение процесса, в результате чего пользовательская задача теперь будет иметь 2 новые локальные переменные.
Но она мешает тем задачам, которые уже есть в системе, и, следовательно, не 'у меня есть эти 2 новые переменные.
У меня есть 2 варианта:
- Либо я каким-то образом модифицирую код Java, чтобы справиться с этим.*
- Перед развертыванием нового определения процесса измените код Java, чтобы при входе пользователя в систему эти две переменные добавлялись к задаче, назначенной его задаче (или это также можно сделать, запустив сценарий для обновления соответствующей активности).таблицы).
Но я не уверен, какой из них будет предпочтительнее?
Ввод будет очень полезным.
Редактировать:
Например, вариант использования - найти назначенную задачу.В текущей реализации это просто выглядит так:
taskService.createTaskQuery().taskAssignee(userId).singleResult()
Это работает, потому что одновременно может быть назначена только одна задача.
Теперь в новом требовании может быть несколько задачназначен, один из которых пользователь в настоящее время работает.Поэтому я использую 2 новые переменные задачи, такие как:
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.Если такой задачи нет, то мы запрашиваем задачи, для которых переменная «приостановлена» установлена как ложная, и сортируем эти задачи и выбираем первую.
Но для задач, уже существующих, эти две переменные,«текущий» и «приостановленный» не будут доступны.