Activiti 流程的挂起与激活

当需要暂停使用一个 Activiti 流程时,可以通过调用 Activiti 的 API 来实现流程的挂起与激活。

附 Activiti 6.x Javadocs 网址:Activiti 6.x Javadocs

附 Flowable Javadocs 网址:Flowable Javadocs

本文通过 ID 来挂起与激活流程,流程定义还可以根据 Key 来完成挂起与激活,根据实际需求来选择调用哪种方法。

流程实例的挂起与激活

通过 RuntimeService 和 HistoryService 均可实现对流程实例的挂起与激活操作,因 HistoryService 无用数据较多,相应的查询操作会占用更多的时间,所以本文选用 RuntimeService 来实现。

当流程实例被挂起时,无法通过下一个节点对应的任务id来继续这个流程实例。

通过挂起某一特定的流程实例,可以终止当前的流程实例,而不影响到该流程定义的其他流程实例。

激活之后可以继续该流程实例,不会对后续任务造成影响。

    //通过流程实例ID来挂起流程实例
    void suspendProcessInstanceById(String processInstanceId);
    //通过流程实例ID来激活流程实例
    void activateProcessInstanceById(String processInstanceId);

流程定义的挂起与激活

通过 RepositoryService 可以实现对流程定义的挂起与激活操作。

当流程定义被挂起时,已经发起的该流程定义的流程实例不受影响(如果选择级联挂起则流程实例也会被挂起)。

当流程定义被挂起时,无法发起新的该流程定义的流程实例。

    //通过流程定义ID来挂起流程定义
    void suspendProcessDefinitionById(String processDefinitionId);
    //第二个参数为是否级联挂起该流程定义的流程实例
    //第三个参数为挂起这个流程定义的时间,null为立即挂起
    void suspendProcessDefinitionById(String processDefinitionId,
                                      boolean suspendProcessInstances,
                                      Date suspensionDate);
    //激活流程定义
    void activateProcessDefinitionById(String processDefinitionId);
    void activateProcessDefinitionById(String processDefinitionId,
                                       boolean activateProcessInstances,
                                       Date activationDate);





  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值