如何更新流程实例变量?

How to update process instance variables?

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

RuntimeService 有一个方法“setVariable”,可以用 processInstanceId、variableName 和 value 调用。

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

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

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