Activiti7工作流引擎:进阶篇(七) 调用子流程 CallActivityTask
知识传送门 》》》》》》》》》》》》》》》》》》》
造句:“朋友”,“我的”,“是”,“小明” 。
方法之间可以相互调用,同理,流程定义之间也可以相关调用,达到流程定义复用的目的。
一:流程定义1
二:流程定义2
Called Element: 调用其它流程,值为其它流程Id。
三:启动和启动流程
@Test
public void delopyAllBpmn() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();processEngine.getRepositoryService().createDeployment().addClasspathResource("bpmn/LeaveProcess2.bpmn").name("请假流程").deploy();processEngine.getRepositoryService().createDeployment().addClasspathResource("bpmn/LeaveProcess1.bpmn").name("请假流程2").deploy();
}@Test
public void startProcessInstance() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();processEngine.getRuntimeService().startProcessInstanceByKey("LeaveProcess1");
}
四:发起申请
@Test
public void testApplyTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();taskService.setAssignee(task.getId(), "zhangsan");taskService.complete(task.getId());
}
张三发起请假流程,然后并审核自己,进入下一个节点,直接进入了LeaveProcess2.bpmn文件中定义的第一个节点(经理审批)。
调用子流程开启了2个流程实例。SUPER_EXEC_=2502流程实例1的执行流。
五:经理审批
@Test
public void testPMTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();taskService.setAssignee(task.getId(), "pm");taskService.complete(task.getId());
}
经理审批完,又回到了LeaveProcess1.bpmn中的人事审批了。
流程实例2执行完就删除了,剩下流程实例1。
六:人事审核
public void testHRTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();taskService.setAssignee(task.getId(), "hr");taskService.complete(task.getId());
}
调用子流程 CallActivityTask:每个流程都是独立的,会生成两个流程实例。
输入参数和输出参数
方法调用可以传参数,方法自身也有返回值。同样CallActivityTask同样可以有输入参数和输出参数。
zhangsan发起申请,并完成任务,同时设置pmAuditor变量最终赋值给pm变量,最后调用流程,进入到经理审批。
@Test
public void testApplyTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();taskService.setAssignee(task.getId(), "zhangsan");Map<String, Object> variables = new HashMap<>();variables.put("pmAuditor", "wangjingli");taskService.complete(task.getId(), variables);
}
经理直接审批结束,设置变量hrAuditor赋值给hr,结束流程2,回到流程1,进入人事审批。
@Test
public void testPMTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();Map<String, Object> variables = new HashMap<>();variables.put("hrAuditor", "zhaoHR");taskService.complete(task.getId(), variables);
}
人事直接审批完结束整个流程。
public void testHRTask() {ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();TaskService taskService = processEngine.getTaskService();Task task = taskService.createTaskQuery().singleResult();taskService.complete(task.getId());
}
public void leaveProcess1() {sout("zhangsan发起申请");String pmAuditor = "wangjingli";String hr = leaveProcess2(pmAuditor);sout(hr + "人事审批");
}public String leaveProcess2(String pm) {sout(pm + "经理审核");String hrAuditor = "zhaoHR";return hrAuditor;
}
知识传送门 》》》》》》》》》》》》》》》》》》》
Activiti7工作流引擎:进阶篇(七) 调用子流程 CallActivityTask相关推荐
- Activiti7工作流引擎:进阶篇(九) 内嵌子流程 SubProcess
知识传送门 >>>>>>>>>>>>>>>>>>> 为什么普通人要想成佛就得经过九九八 ...
- Activiti7 工作流引擎入门
Activiti7 工作流引擎入门 做课目的 一.适用人群: 普通人 不是每个人都能进入一线互联网大厂 BATJ 普通人,省城,软件公司,银行.政府做 二.适用项目:OA CRM ERP 系统 出差报 ...
- Activiti工作流引擎进阶【收藏可做笔记系列】
Activiti工作流引擎进阶 Activiti进阶 一.流程实例 什么是流程实例 启动流程实例 并添加Businesskey(业务标识) 操作数据库表 查询流程实例 关联BusinessKey 挂起 ...
- activity工作流调用子流程 callActivity
最近项目中需要用到工作流,其中需要用到工作流中的调用子流程功能,折腾半天完工之后记录一下. 主流程图 子流程图 一个简单的例子说明一下 最关键的是在调用子流程这个模块的properties 中配置要调 ...
- Activiti7工作流引擎:基础篇(一) 简介与IDEA插件安装
你不要一直不满他人,你应该一直检讨自己才对. 零:审批场景 对于请假流程我们有以下两种做法: 传统方式:写一个请假条,拿着请假条跑到项目经理那里签字,然后再拿着请假条去部门经理那里签字,然后再拿着请假 ...
- 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot
本篇学习笔记是观看黑马程序员Activiti7视频而得 Activiti7 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是" ...
- Activiti7工作流引擎
什么是Activiti7 Activiti 下载地址: http://activiti.org/download.html Activiti 是一个工作流引擎, activiti 可以将 ...
- Activiti7工作流引擎-环境搭建及创建数据库
第1章 什么是工作流 1.1工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者 之间按照某种预定义的规则自动进行传递文档.信息或任 ...
- [安全攻防进阶篇] 七.恶意样本检测之编写代码自动提取IAT表、字符串及时间戳溯源
系统安全绕不开PE文件,PE文件又与恶意样本检测及分析紧密相关.前文作者带领大家逆向分析两个CrackMe程序,包括逆向分析和源码还原.这篇文章主要介绍了PE文件基础知识及恶意样本检测的三种处理知识, ...
最新文章
- ubuntu网卡配置
- 将页脚保持在页面的底部——Javascript+Css实现
- mysql base64
- 1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】
- 计算机兴趣小组意义,信息技术兴趣小组开展之我见
- 作者:高丰(1986-),英国南安普敦大学计算机博士,现为开放数据与创新独立咨询顾问,兼复旦大学数字与移动治理实验室特邀研究员。...
- 关于三星某些系列笔记本电脑无法安装Windows10的原因及解决办法
- android 异步图片加载 开源,异步加载图片BitmapFun分析
- LED显示驱动(八):显示驱动调试问题
- 执行力强的人九个特点
- php简历掌握技能,php简历技能怎么写
- 深入RxJava2 源码解析(二)
- Excel图标美化技巧
- sat考试用计算机,SAT考试怎么选择计算器
- 关于“外接硬盘被写了保护的解决方法”
- 体验5款陌生社交App后,发现全是“金钱”套路
- ye读春秋左传系列视频讲解
- 任务栏创建返回桌面快捷图标
- 英国诺丁汉大学的AIMS与虚拟现实技术
- nas文件服务器改造,nas 文件服务器的配置
热门文章
- 试题 历届试题 对局匹配(动态规划)保证简单
- 进行网络电视直播的几种方法
- 计算机维护与管理结束语,计算机系统维护专业毕业论文答辩开场白结束语精品范文...
- 中国农业大学的计算机科学与技术,孙瑞志谈中国农业大学计算机科学与技术专业...
- 文献阅读_Joint Prostate Cancer Detection and Gleason Score Prediction in mp-MRI via FocalNet
- PHP 接口和抽象类的区别
- 【练习笔记(第一次)】2020年数学建模国赛C题:数据处理、源代码
- 网站页面一键克隆,自动归类资源文件!PHPCUSTOM环境内置功能
- CSS3新增属性——过渡和动画(2D属性,3D动画)
- matlab实现计算全息,MATLAB中二元傅里叶变换计算全息图的算法