背景

  1. POJO, 这个概念其实来自Spring中,叫做增强型Java对象。因为Spring是非侵入式编程模式,我们开发者自定义的实体,既可以变成POJO类型的实体服务于Spring框架,这个变成的POJO类型的实体,在其他地方使用也没有任何影响。
  2. 其实就是这样的形式${holiday.num}, 表达式会调用一个getNum()方法。其实我们的JSP中也有这样的EL表达式知识。Mybatis的中占位符的表达式写法,其实也是Java代码调用getNum()方法。
  3. 要测试一个小知识,会稍微有些繁琐。因此,通过反复练习,达到熟练。
  4. 画流程定义图 -> 部署流程定义图 -> 实例化流程定义(初始化一个流程实例)-> 负责人处理任务。
  5. 在上面的一个过程中,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());}}
  • 结果

  • 任务处理

小结

  1. 记录操作步骤。assignee的值用UEL的POJO实现。

Activiti7.0进阶学习(三):assignee的值用UEL的POJO实现相关推荐

  1. Activiti7.0进阶学习(一):assignee的值用UEL实现

    背景 UEL(Unified Expression Language)即统一表达式语言,activiti支持两个UEL表达式:UEL-value和UEL-method 过程 bpmn流程图展示 bpm ...

  2. Activiti7---Assignee的值用UEL的POJO实现

    文章目录 1. 背景 2. 过程 3. 小结 1. 背景 POJO,这个概念其实来自Spring中,叫做增强型Java对象.因为Spring是非侵入式编程模式,我们开发者自定义的实体,既可以变成POJ ...

  3. Activiti7.0实战学习(九):查询历史表中的数据

    背景 我们可以先只是生成数据库中的表,然后在进行流程定义的部署. 我们也可以不用先生成数据库中的表,而直接进行流程定义的部署,也会生成表结构,并且会插入流程部署相关的必要的信息. 流程定义部署后,数据 ...

  4. Activiti7.0实战学习(十一):流程定义的挂起与激活

    背景 要注意,这里说的是流程定义的概念,不是流程实例. 想,如果一个流程定义被挂起了与被激活了,表达了什么含义? 想,为什么流程定义被会挂起,又为什么会被激活? 过程 流程实例可以理解为流程定义这个c ...

  5. Mysql进阶学习(三)排序查询与常见函数

    Mysql进阶学习(三)排序查询与常见函数 一.进阶3:排序查询 1.语法: 2.特点: 3.排序方式 3.1.按单个字段排序 3.2.添加筛选条件再排序 案例:查询部门编号>=90的员工信息, ...

  6. 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三)

    工作流(activiti7)教程-简单的介绍和使用(一) 工作流(activiti7)教程-简单的介绍和使用(二) 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三) 工作流( ...

  7. opencv进阶学习9:图像阈值大全,图像二值化,超大图像二值化

    基础版笔记链接: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版二值化讲解 opencv ...

  8. WF4.0 基础篇 (三十 完) 对学习WF的一点建议

    从09年10月份 NET4.0 Bata 2发布后,我就开始写[WF4.0 基础篇]这个系列,经历了5个多月终于在NET4.0正式发布前将这个系列完成了 这段时间与一些对WF4.0感兴趣的公司与开发人 ...

  9. Fabric2.0部署学习进阶教程系列博文

    Fabric2.0部署学习系列文章目录 1.<在本机上安装VMWare详细图文过程> https://blog.csdn.net/weixin_44750512/article/detai ...

最新文章

  1. 【翻译自mos文章】OGG replicat 进程使用的 TCP port
  2. vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
  3. 微信支付接口开发过程
  4. linux下杀死进程全权讲解
  5. python版:装饰器模式
  6. 串行测试 并行测试_如何通过CircleCI测试并行性增加构建时间
  7. maven项目打包时生成dependency-reduced-pom.xml
  8. S5PV210体系结构与接口04:代码重定位 SDRAM初始化
  9. 初学QT遇到的“_on_OK_clicked(bool)未定义的引用”的问题,以及使用windows远程桌面登录树莓派
  10. 点击某些按钮不要触发验证控件
  11. c语言校招笔试试题,腾讯2014校园招聘C语言笔试题
  12. vrep小车寻迹代码
  13. 开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
  14. 德格:一个专门为中小型企业做定制化服务的SaaS平台
  15. 20系列和30系列显卡下的tensorflow-gpu环境配置,避坑指南
  16. 济南江苏商会成立 全国工商联·万祥军:商协社团厚德聚苏商
  17. 将 EGL 代码与 DXGI 和 Direct3D 进行比较
  18. php农历生日计算,阴历-农历-转换类 (PHP版),阴历php
  19. SAP S4 HANA 安装部署记事七.SAP S4 ON HANA 的部署准备
  20. 为用户提供功能模块(详解)

热门文章

  1. 基于ssm-mysql易付宝理财中心网站
  2. 乐学云课堂App开发——绪论
  3. Stduino NanoUno简单快速开发stm32
  4. 简单的签到代码_太神了吧!打开浏览器的一瞬就自动签到,经验积分礼物全到手...
  5. 滤镜之纹理Texture特效
  6. 高性能 Nginx HTTPS 调优 - 如何为 HTTPS 提速 30%
  7. JMeter 安装教程 For MAC
  8. php注视有哪些,注视感知功能是什么
  9. GPIB + C#编程
  10. unity5自由大场景上下楼梯