Как установить переходную переменную для Activiti при запуске процесса

Я использую Activiti версии 6.0.0 и пытаюсь установить временные переменные при запуске процесса или завершении задачи. В документации для переходных переменных говорится:

Временные переменные можно получить и / или установить в большинстве мест, где доступны обычные переменные:
1. В DelegateExecution в реализациях JavaDelegate
2. В DelegateExecution в реализациях ExecutionListener и в DelegateTask в реализациях TaskListener
3. В задаче скрипта через объект исполнения
4. При запуске экземпляра процесса через службу времени выполнения
5. При выполнении задачи
6. При вызове метода runtimeService.trigger

Случаи 1–3 мне понятны. Для случая 5 есть taskService.complete(taskId, variables, transientVariables);, для случая 6 есть runtimeService.trigger(executionId, processVariables, transientVariables);, но нет runtimeService.startProcess... метода, принимающего переходные переменные (RuntimeService javadoc):

Список доступных методов startProcess ... Также я не нашел способа установить временную переменную после того, как я запустил процесс, и у меня есть объект ProcessInstance, возвращенный методом startProcess....

Есть ли способ установить временные переменные при запуске процесса или мне нужно использовать обходной путь (случаи 1 или 2)?


person Piro says Reinstate Monica    schedule 14.12.2018    source источник


Ответы (1)


Вы можете установить временные переменные при запуске в 6.x с помощью немного другой метод запуска процесса:

runtimeService.createProcessInstanceBuilder()
        .processDefinitionKey("transientVarsTest")
        .transientVariable("variable", "gotoA")
        .start()
person Ryan Dawson    schedule 17.12.2018