如何更新流程实例变量?

时间:2019-04-02 16:29:01

标签: java camunda camunda-modeler

我正在使用Camunda Java Api,并且我想为正在运行的进程更改进程实例变量,这可能吗?

2 个答案:

答案 0 :(得分:3)

RuntimeService具有“ setVariable”方法,可以使用processInstanceId,variableName和value进行调用。

您可以使用“ runtimeService.createProcessInstanceQuery()...”找到流程实例,例如,使用流程业务密钥。

答案 1 :(得分:1)

我终于找到了如何为所有正在运行的流程实例更新变量:

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);
        });
    });