2

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

4

2 回答 2

4

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

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

于 2019-04-03T11:21:17.580 回答
3

最后,我了解如何为所有正在运行的流程实例更新变量:

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);
        });
    });
于 2019-04-03T13:03:57.383 回答