java - 是否可以在 camunda 中使用 Fluent API 更新正在运行的流程实例?
问题描述
我正在尝试使用 Fluent API 在进程的运行时进行一些更改。是否可以更新正在运行的实例?
例如:如果我想在现有事件(用户任务、服务任务……)之间添加新事件并运行新添加的事件。有没有办法做到这一点?
解决方案
你可以这样做:
- 创建流程的新版本并进行部署。
- 将流程实例迁移到该版本。
第 2 步的最小代码示例:
RuntimeService runtimeService = ..;
ProcessInstance processInstance = ..;
ProcessDefinition oldDefinition = ..;
ProcessDefinition newDefinition = ..;
MigrationPlan migrationPlan = runtimeService
.createMigrationPlan(oldDefinition.getId(), newDefinition.getId())
.mapEqualActivities()
.build();
runtimeSerivce.newMigration(migrationPlan)
.processInstanceIds(processInstance.getId())
.execute();
进一步阅读: