Как обновить переменные экземпляра процесса? - PullRequest
1 голос
/ 02 апреля 2019

Я использую Camunda Java Api и хотел бы изменить переменную экземпляра процесса для запущенного процесса, возможно ли это?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2019

RuntimeService имеет метод 'setVariable', который можно вызывать с помощью processInstanceId, variableName и value.

Вы можете найти processInstance с помощью 'runtimeService.createProcessInstanceQuery () ....', например, с помощьюиспользуя бизнес-ключ процесса.

1 голос
/ 03 апреля 2019

Наконец, я узнаю, как обновить переменную для всех запущенных экземпляров процесса:

List<ProcessInstance> processInstances =
            runtimeService.createProcessInstanceQuery()
                    .processDefinitionKey(processKey)
                    .active()
                    .list();
    processInstances.forEach(processInstance -> {
        List<Execution> executions = runtimeService.createExecutionQuery()
                .processInstanceId(processInstance.getId())
                .list();
        executions.forEach(execution -> {
            runtimeService.setVariable(execution.getId(), variableName, variableValue);
        });
    });
...