Activiti7.0进阶学习(三):assignee的值用UEL的POJO实现
背景
- POJO, 这个概念其实来自Spring中,叫做增强型Java对象。因为Spring是非侵入式编程模式,我们开发者自定义的实体,既可以变成POJO类型的实体服务于Spring框架,这个变成的POJO类型的实体,在其他地方使用也没有任何影响。
- 其实就是这样的形式${holiday.num}, 表达式会调用一个getNum()方法。其实我们的JSP中也有这样的EL表达式知识。Mybatis的中占位符的表达式写法,其实也是Java代码调用getNum()方法。
- 要测试一个小知识,会稍微有些繁琐。因此,通过反复练习,达到熟练。
- 画流程定义图 -> 部署流程定义图 -> 实例化流程定义(初始化一个流程实例)-> 负责人处理任务。
- 在上面的一个过程中,assignee的赋值,我们需要考量赋值的方式是什么?赋值的时机又是什么?
过程
流程定义图(${holiday.applyName} ${holiday.managerName})
静态资源文件(png,bpmn)
POJO(需要实现序列化接口,Serializable)
public class Holiday implements Serializable {private String applyName;private String managerName;public String getApplyName() {return applyName;}public void setApplyName(String applyName) {this.applyName = applyName;}public String getManagerName() {return managerName;}public void setManagerName(String managerName) {this.managerName = managerName;}
}
- 部署
@Testpublic void deploy() {//1. 通过工具类(ProcessEngines)获取引擎实例ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//2. 得到RepositoryService实例RepositoryService repositoryService = processEngine.getRepositoryService();//3. 得到部署实例Deployment deployment = repositoryService.createDeployment().name("测试pojo分配值").addClasspathResource("bpmn/holiday09.bpmn").addClasspathResource("bpmn/holiday09.png").deploy();System.out.println("部署ID:" + deployment.getId());System.out.println("部署名称:" + deployment.getName());}
- 实例化
@Testpublic void startProcessAndAssigneeValue() {//1. 通过工具类(ProcessEngines)获取流程引擎实例ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//2. 得到RuntimeServiceRuntimeService runtimeService = processEngine.getRuntimeService();//3. 设置assignee的取值,用户在界面上设置流程的执行人Map<String, Object> map = new HashMap<>();Holiday holiday = new Holiday();holiday.setApplyName("Ted");holiday.setManagerName("Karen");map.put("holiday", holiday);//4. 启动流程实例,同时还要设置流程定义的assignee的值runtimeService.startProcessInstanceByKey("myProcess_1", map);}
- 数据库结果展示
act_ru_identitylink
act_ru_task
- 当Ted处理完成任务后,会发生什么?(Ted完成请假表单的填写)
@Testpublic void dealWithTaskByTed() {//1. 通过工具类(ProcessEngines)获取流程引擎实例ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//2. 得到TaskService实例TaskService taskService = processEngine.getTaskService();//3. 根据流程定义的key,负责人assignee来实现当前用户的任务列表查询List<Task> taskList = taskService.createTaskQuery().processDefinitionKey("myProcess_1").taskAssignee("Ted").list();//4. 任务处理for (Task task: taskList) {taskService.complete(task.getId());}}
结果
任务处理
小结
- 记录操作步骤。assignee的值用UEL的POJO实现。
Activiti7.0进阶学习(三):assignee的值用UEL的POJO实现相关推荐
- Activiti7.0进阶学习(一):assignee的值用UEL实现
背景 UEL(Unified Expression Language)即统一表达式语言,activiti支持两个UEL表达式:UEL-value和UEL-method 过程 bpmn流程图展示 bpm ...
- Activiti7---Assignee的值用UEL的POJO实现
文章目录 1. 背景 2. 过程 3. 小结 1. 背景 POJO,这个概念其实来自Spring中,叫做增强型Java对象.因为Spring是非侵入式编程模式,我们开发者自定义的实体,既可以变成POJ ...
- Activiti7.0实战学习(九):查询历史表中的数据
背景 我们可以先只是生成数据库中的表,然后在进行流程定义的部署. 我们也可以不用先生成数据库中的表,而直接进行流程定义的部署,也会生成表结构,并且会插入流程部署相关的必要的信息. 流程定义部署后,数据 ...
- Activiti7.0实战学习(十一):流程定义的挂起与激活
背景 要注意,这里说的是流程定义的概念,不是流程实例. 想,如果一个流程定义被挂起了与被激活了,表达了什么含义? 想,为什么流程定义被会挂起,又为什么会被激活? 过程 流程实例可以理解为流程定义这个c ...
- Mysql进阶学习(三)排序查询与常见函数
Mysql进阶学习(三)排序查询与常见函数 一.进阶3:排序查询 1.语法: 2.特点: 3.排序方式 3.1.按单个字段排序 3.2.添加筛选条件再排序 案例:查询部门编号>=90的员工信息, ...
- 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三)
工作流(activiti7)教程-简单的介绍和使用(一) 工作流(activiti7)教程-简单的介绍和使用(二) 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三) 工作流( ...
- opencv进阶学习9:图像阈值大全,图像二值化,超大图像二值化
基础版笔记链接: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版二值化讲解 opencv ...
- WF4.0 基础篇 (三十 完) 对学习WF的一点建议
从09年10月份 NET4.0 Bata 2发布后,我就开始写[WF4.0 基础篇]这个系列,经历了5个多月终于在NET4.0正式发布前将这个系列完成了 这段时间与一些对WF4.0感兴趣的公司与开发人 ...
- Fabric2.0部署学习进阶教程系列博文
Fabric2.0部署学习系列文章目录 1.<在本机上安装VMWare详细图文过程> https://blog.csdn.net/weixin_44750512/article/detai ...
最新文章
- 【翻译自mos文章】OGG replicat 进程使用的 TCP port
- vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
- 微信支付接口开发过程
- linux下杀死进程全权讲解
- python版:装饰器模式
- 串行测试 并行测试_如何通过CircleCI测试并行性增加构建时间
- maven项目打包时生成dependency-reduced-pom.xml
- S5PV210体系结构与接口04:代码重定位 SDRAM初始化
- 初学QT遇到的“_on_OK_clicked(bool)未定义的引用”的问题,以及使用windows远程桌面登录树莓派
- 点击某些按钮不要触发验证控件
- c语言校招笔试试题,腾讯2014校园招聘C语言笔试题
- vrep小车寻迹代码
- 开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- 德格:一个专门为中小型企业做定制化服务的SaaS平台
- 20系列和30系列显卡下的tensorflow-gpu环境配置,避坑指南
- 济南江苏商会成立 全国工商联·万祥军:商协社团厚德聚苏商
- 将 EGL 代码与 DXGI 和 Direct3D 进行比较
- php农历生日计算,阴历-农历-转换类 (PHP版),阴历php
- SAP S4 HANA 安装部署记事七.SAP S4 ON HANA 的部署准备
- 为用户提供功能模块(详解)