flowable 在途流程数据迁移,运行中的流程实例迁移到新版本流程图,运行中流程更换新流程图

5 篇文章 0 订阅
2 篇文章 0 订阅

1. 背景

开发流程中很多时候流程图发生了修改,流程部署后希望在途流程实例按照新的流程图运行,这时候就引入了在途流程实例的迁移。
如初始流程图如下,processDefinitionId = 1
流程定义1
后续业务发生变化需要新增节点,流程图变成如下,processDefinitionId = 2
流程定义2
需求要求在途流程按照processDefinitionId = 2运行,此时需要修改在途流程的流程图

2. 实现

fromProcessDefId 原流程定义id
toProcessDefId 迁移目标流程定义ID

    /**
     * 运行中流程实例迁移
     * @param fromProcessDefId 迁移原流程定义id
     * @param toProcessDefId 迁移目标流程定义id
     */
    private void procInstMigration(String fromProcessDefId, String toProcessDefId) {
        // 迁移验证
        boolean migrationValid = runtimeService.createProcessInstanceMigrationBuilder()
                .migrateToProcessDefinition(toProcessDefId)
                .validateMigrationOfProcessInstances(fromProcessDefId)
                .isMigrationValid();
        if (!migrationValid) {
            // 验证不通过
            throw new BizException("流程定义差异过大不满足在途流程的迁移,请修改流程图");
        }
        // 验证通过执行迁移
        runtimeService.createProcessInstanceMigrationBuilder()
                .migrateToProcessDefinition(toProcessDefId)
                .migrateProcessInstances(fromProcessDefId);
    }
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值