Activiti: Добавление задачи локальных переменных adhoc - PullRequest
0 голосов
/ 15 мая 2019

Мне нужно изменить определение процесса, в результате чего пользовательская задача теперь будет иметь 2 новые локальные переменные.

Но она мешает тем задачам, которые уже есть в системе, и, следовательно, не 'у меня есть эти 2 новые переменные.

У меня есть 2 варианта:

  1. Либо я каким-то образом модифицирую код Java, чтобы справиться с этим.*
  2. Перед развертыванием нового определения процесса измените код 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.Если такой задачи нет, то мы запрашиваем задачи, для которых переменная «приостановлена» установлена ​​как ложная, и сортируем эти задачи и выбираем первую.

Но для задач, уже существующих, эти две переменные,«текущий» и «приостановленный» не будут доступны.

1 Ответ

0 голосов
/ 16 мая 2019

Похоже, вы пытаетесь изменить существующий пользовательский код для нового определения процесса.если ваш код тесно связан с вашим процессом - как вы описали в отношении переменных задачи.Я рекомендую вам создать еще один компонент для вашего нового процесса.таким образом вы сможете работать с новым процессом, не затрагивая логику старого.

...