activiti入门
0.图文介绍
1)假设:这两张图就是华谊兄弟的请假流程图
2) 图的组成部分:
A. 人物:范冰冰 冯小刚 王中军
B. 事件(动作):请假、批准、不批准
1.什么是工作流?
多个人参与某件事的步骤流程
2.activiti.jpbm5 实现工作流的框架
Activiti–核心–工作流引擎(ProcessEngine),这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
3.准备环境
3.1开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本
3.2 先安装插件
activiti拖拽插件,反编译插件(看源码)
3.3 导包(activiti-所需要的环境jar包)
wars/rest项目/web-inf/lib(官方给我们的案例)
ssm+activiti
4.配置-配置文件
4.1 硬编码
jdbc 连接信息
4.2 config 配置文件
4.3 默认自动加载方式加载配置文件
获取核心对象-别名(服务大管家)
4.4 数据库
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。
5.resportyService 仓库
5.1 发布流程
// 获取流程发布对象
DeploymentBuilder createDeployment = repositoryService.createDeployment();
5.2 查询部署列表和流程定义的列表
5.3 删除-真删除和假删除(挂起和激活)
5.4 查看流程图
6. runtimeService 运行时 和 tasksService 任务 接口
6.1 启动流程
processkey启动
6.2 查询任务列表
查询某个人的列表
6.3 完成任务
私有任务 (一个人)
公有任务 (多个人)
6.4 完成私有任务
taskService.complete(taskId);
6.5 完成公有任务
先认领任务
然后在完成任务
taskService.claim(taskId, userId);
taskService.complete(taskId);
6.6 查询实例状态是否就结束
7 .历史 historyService 就是运行时完成流程那数据就进入到历史表中,有多少次执行这个实例流程(也就是有多少人离职)
8.总结:
由于数据库中保存着历史信息以及正在运行的流程实例信息,在实际项目中对已完成任务的查看频率远不及对代办和可接任务的查看,所以在activiti采用分开管理,把正在运行的交给RuntimeService、TaskService管理,而历史数据交给HistoryService来管理。
这样做的好处在于,加快流程执行的速度,因为正在执行的流程的表中数据不会很大。
注:
相关资源下载
1) JDK可以到sun的官网下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2) 数据库,例如:mysql可以在官网上下载。
http://www.mysql.com
3) activiti也可以到Activiti官方网站下载得到。
http://activiti.org/download.html