【问题标题】:Is it possible to update the running process instance using Fluent API in camunda?是否可以在 camunda 中使用 Fluent API 更新正在运行的流程实例?
【发布时间】:2018-11-05 04:31:58
【问题描述】:

我正在尝试使用 Fluent API 对进程的运行时进行一些更改。是否可以更新正在运行的实例?

例如: 如果我想在现有事件(用户任务、服务任务...)之间添加新事件并运行新添加的事件。有没有办法做到这一点?

【问题讨论】:

    标签: java camunda camunda-modeler bpmn.io


    【解决方案1】:

    你可以这样做:

    1. 创建新版本的流程并进行部署。
    2. 将流程实例迁移到该版本。

    步骤 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();
    

    进一步阅读:

    【讨论】:

    • 感谢您的回答。我是 camunda 的新手,如何从 BpmnModelInstance 制作 ProcessDefinition?
    • 您通过部署 API 部署模型实例,然后通过RepositoryService#createProcessDefinitionQuery 访问流程定义。 ProcessDefinition 是部署的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2022-08-17
    • 1970-01-01
    相关资源
    最近更新 更多