《Activiti/Flowable  深入BPM工作流》-流程实例怎么实现挂起?

一. 问题

1. 什么情况要进行流程的挂起?

2. 具体怎么将流程挂起?

二. 详情

  1. 什么情况要进行流程的挂起?

解答: 例如公司制度改变过程中的流程, 总经理更换过程中的流程

有100个人的流程, 70个人已经完成,30个人流程正好在总经理更换中,就需要挂起.

   2. 具体怎么将流程挂起?

解答: 先判断流程是否暂停: 通过 processDifinition.isSuspended();

如果激活就挂起,否则不操作.

具体的代码实现如下:

操作流程定义为挂起状态,该流程定义下边所有的流程实例全部暂停:

流程定义为挂起状态该流程定义将不允许启动新的流程实例,同时该流程定义下所有的流程实例将

全部挂起暂停执行。

1. 全部挂起

/*** 挂起流程定义*/public void suspendOrActivateProcessDefinition() {// 流程定义 idString processDefinitionId = "";// 获得 RepositoryServiceProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");ProcessEngine processEngine = configuration.buildProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();// 获得流程定义ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();// 判断是否暂停boolean suspend = processDefinition.isSuspended();if (suspend) {// 如果暂停则激活,这里将流程定义下的所有流程实例全部激活.repositoryService.activateProcessDefinitionById(processDefinitionId, true, null);System.out.println("流程定义:" + processDefinitionId + "已激活");} else {// 如果激活则挂起,这里将流程定义的所有流程实例全部挂起repositoryService.suspendProcessDefinitionById(processDefinitionId, true, null);System.out.println("流程定义: " + processDefinitionId + "挂起");}}

2. 单个挂起

操作流程实例对象,针对单个流程执行挂起操作,某个流程实例挂起则此流程不再继续执行,完成

该流程实例的当前任务将报异常

/*** 单个流程实例挂起*/@Testpublic void suspendOrActivateProcessDefinitionOne() {// 流程定义idString processDefinitionId = "";// 获取runtimeServiceProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");ProcessEngine processEngine = configuration.buildProcessEngine();RuntimeService runtimeService = processEngine.getRuntimeService();// 根据流程实例id查询流程ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processDefinitionId(processDefinitionId).singleResult();// 是否暂停boolean suspend = processInstance.isSuspended();if (suspend) {// 如果暂停,则激活runtimeService.activateProcessInstanceById(processDefinitionId);System.out.println("流程实例: " + processDefinitionId + "激活");} else {// 如果激活则挂起runtimeService.suspendProcessInstanceById(processDefinitionId);System.out.println("流程实例:" + processDefinitionId + "挂起");}}

小结:

要实现流程的挂起,我们首先需要的是判断流程是否存在,再暂停,通过 processDifinition.isSuspended(); 如果前面都存在,再进

行流程的挂起操作.

如果激活就挂起,否则不操作; 其中挂起也分为单个挂起和批量挂起,这个就需要具体情况具体来分析了.

《Activiti/Flowable 深入BPM工作流》-流程实例怎么实现挂起?相关推荐

  1. 《Activiti/Flowable  深入BPM工作流》-什么是流程变量?

               <Activiti/Flowable  深入BPM工作流>-什么是流程变量? 一. 问题:         1. 什么是流程变量?        2. 什么是glob ...

  2. 《Activiti/Flowable  深入BPM工作流》-组任务的办理流程是什么?

        <Activiti/Flowable  深入BPM工作流>-组任务的办理流程是什么? 一. 问题          组任务的办理流程是什么? 二. 详情 第一步:查询组任务 指定候 ...

  3. 《Activiti/Flowable  深入BPM工作流》-如何设置local流程变量?

    <Activiti/Flowable  深入BPM工作流>-如何设置local流程变量? 一. 问题:  1. 什么是local流程变量?     2. 如何设置local流程变量?   ...

  4. 《Activiti/Flowable 深入BPM工作流》-流程定义怎么进行删除?

        <Activiti/Flowable  深入BPM工作流>-流程定义怎么进行删除? 一. 问题 之前我们分享过流程定义的流程任务查询,  流程任务处理, 任务那么怎么进行删除? 二 ...

  5. 《Activiti/Flowable 深入BPM工作流》-流程部署实现方式二

    <Activiti/Flowable  深入BPM工作流>                                     ----流程部署实现方式二 一. 问题 流程部署实现方式 ...

  6. 《Activiti/Flowable 深入BPM工作流》- BPM任务如何关联businessKey?

               <Activiti/Flowable  深入BPM工作流>- BPM任务如何关联businessKey? 一. 问题    1. BPM任务如何关联businessK ...

  7. 《Activiti/Flowable 深入BPM工作流》-如何分配任务负责人?

    <Activiti/Flowable  深入BPM工作流>-如何分配任务负责人? 一. 问题      如何分配任务负责人? 二. 详情 1. 直接在画 流程图的时候进行设置. 2.使用流 ...

  8. 《Activiti/Flowable  深入BPM工作流》- Activiti 与springboot 怎么进行整合?

    <Activiti/Flowable  深入BPM工作流> -Activiti 与springboot 怎么进行整合? 一.问题 Activiti 如何与springboot进行整合? 1 ...

  9. 《Activiti/Flowable 深入BPM工作流》---工作流中的网关有哪些?

    <Activiti/Flowable  深入BPM工作流>---工作流中的网关有哪些? 一. 问题: 1. 网关分为哪几类? 2. 什么是排他网关? 3. 什么是并行网关? 4. 什么是包 ...

最新文章

  1. 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型...
  2. patch -p0 和patch -p1的区别
  3. 基于LSTM电商评论情感分析-多评价指标可视化版(内附源码)【自然语言处理NLP-100例】
  4. 解决Android抽屉被击穿问题
  5. Redis sorted_set实现点赞功能
  6. 关于WinForm控件在asp.net中应用的问题。
  7. ik做尾巴摆动 maya_maya中使用节点做IK骨骼的拉伸
  8. CFile::Open
  9. 敏捷开发团队管理系列之一:序言与出发点
  10. 移动端页面兼容性问题解决方案整理
  11. Array类filter方法实例--查找功能.
  12. MySQL 时间函数
  13. MacOS Monterey 12.5.1 (21G83) OC 0.8.4 / Cl 5148 / PE 三分区原版黑苹果镜像
  14. 数字电视-DVB介绍
  15. 计算机在开机时会进行自检遇到,电脑开机自检卡住了怎么办
  16. Ubuntu 16.04升级到Ubuntu 16.10的方法:
  17. 第6节 构建简单局域网并实现远程管理路由器与交换机——基于PacketTracer仿真
  18. [转]AndroidTolls国内镜像
  19. 【BZOJ1814】Ural 1519 Formula 1 (插头dp)
  20. 黄金思维圈,养成透过现象看本质的能力

热门文章

  1. 鸡尾酒瓶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. 商品属性对应表,商品相册表,用户表,用户收货地址表,地区表,购物车表,送货方式表,订单表,订单明细表的数据库设计
  3. c++ vector用法 入门必看 超详细
  4. 从最大似然估计开始,你需要打下的机器学习基石
  5. 物联网操作系统的三大核心流派
  6. 红警2单位属性汇总_20201009_
  7. 2018年全闪存阵列市场七大趋势
  8. tf.reduce_mean()
  9. 极客头条 | 5月14日科技要闻:百度贴吧 2017 前贴子无法访问;网易腾讯游戏获批;苹果反垄断案败诉
  10. 快速了解日志概貌,详细解读13种日志模式解析算法