Activiti 流程的挂起与激活

来源:互联网 发布:淘宝护肤品店铺简介 编辑:程序博客网 时间:2024/06/17 03:37

当需要暂停使用一个 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);





阅读全文
0 0
原创粉丝点击