Acitviti7工作流引擎
视频地址:springboot2+Vue+shiro云管理系统项目实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
工作流引擎:
流程自动化配置。
工作流系统:具有工作流的系统。
如何以不变应万变?
-----activiti就可以实现业务流程变化后,程序代码不需要改变
适用行业:
使用场景及相关业务:
SaaS-人力资源管理系统 行政审批(调薪)
为什么activiti就可以解决业务需求变更时,源代码不需要更新,而是更新业务流程图?原理?
activiti最核心的工作流程
1、先将流程图画好
2、将流程图每个节点的数据读取并放入表中
3、读取表中的第一条记录,处理并删除
xml+dom4j+mysql+jdbc
流程实例
实现这个自动化
1、业务流程图要规范化,要遵守一套标准
2、这个业务流程图本质上是一个xml文件,这样就可以存入所要的数据。
3、读取业务流程图的过程就是解析xml文件的过程
4、读取一个业务流程图的结点就相当于是解析一个xml结构,进一步将数据插入到mysql表中,形成一条记录。
5、将所有的节点都读取并存入mysql表中
6、后面只要读取mysql表中的记录就可以了,读一条记录就相当于读一个结点
7、业务流程的推进,后边就转化为读表中数据,并且处理数据,结束时这一行数据就可以删除
BPM
BPM,即业务流程模型
流程建模使用BPMN软件,然后依赖activiti的引擎,解析完的数据放入mysql,有25张表
成本预算:公司开发软件的规模会去决定是否使用activiti。
SaaS-IHPM
1、整合Activiti
2、实现业务流程建模,使用BPMN实现业务流程图
3、部署业务流程到Activiti
4、启动流程实例
5、查询待办任务
6、处理待办任务
7、结束流程
下载activiti7
在idea里直接搜索下载。
activiti支持的数据库
需要的jar包:
总结
1、什么是工作流?
2、工作流,工作流系统,BPM,BPMN
3、流程定义 请假流程:填写请假单-----部门经理-----总经理-----财务经理
4、流程设计器:eclipse安装activiti Designer
idea中安装activities Designer
5、测试是否已经安装成功
6、为什么使用activiti可以实现业务代码不变更,就可以实现流程更新
流程定义图做更新—》先读取结点信息到数据库表中---->后续就针对数据库表进行操作
7、activiti支持的数据库有哪些?
8、25张表的创建,activiti要能够工作,就必须有表结构的支撑。
9、使用java代码方式生成25张表结构
(1)pom.xml文件需要引入activiti7开发相关的坐标
(2)log4j.properties日志文件添加
(3)activiti.cfg.xml默认配置文件,也可以是其他名字
配置数据源
创建processEngineConfiguration对象,使用脱机方式StandaloneProcessEngineConfiguration,
databaseSchemaUpdate
(4)写java代码
processEngineConfiguration类
ProcessEngine类
数据库命名规则
处未实现以下内容的运行结果。ActivitiTaskQuery.class
经分析:
可能原因:activiti中identitylink表没有写入内容,正常应该为:
解决办法: 已解决:原因是刚开始画流程图的时候没有写每个流程的谁来操作,少了一步
流程总结:
业务系统与Activiti整合开发的原理46
公司制度发生了变化:
1、原本还没有批完的流程怎么办?
30个人如何处理
2、xx员工个人还没有批完的流程怎么办?
视频47、48、挂起、激活流程实例(整个制度发生变化)
视频49、50单个实例挂起
businesskey关联业务系统的
activiti进阶
第二章 个人任务 53视频
2.1分配任务负责人
固定分配、表达式分配、监听器分配
54表达式分配(实际中用的较多)
UEL-value方式:$(assignee)程序代码中分配
UEL-method方式:$(holidayBean.getHolidayId0)
55、56assignee表达式方式具体操作 代码
57监听器分配
2.2查询任务
关联businesskey
代码:D:\WorkSpace\IDEA\springboot-activiti\src\main\java\com\wang\day03\activiti\BuinessKeyAdd.java
2.3办理任务
第三章 流程变量59
3.1、流程变量的类型60
3.2、流程变量作用域61
3.3、流程变量使用方法62
3.4、使用Global变量控制流程
63、64实际操作 holiday4.bpmn
启动流程时设置
65请假实体类
66请假流程定义的部署
目录:
设置global流程变量:
启动时设置:视频69、70 代码VariableTest
任务办理时设置:
视频71 代码VariableTest2
通过当前流程实例设置
视频72 代码VariableTest3
通过当前任务设置
视频73VariableTest4未实现
3.5、注意事项74
3.6、所操作数据库表
3.7、设置local流程变量76
任务办理时设置
通过当前任务设置
第四章 组任务77
4.1 Candidate-user 候选人
办理组任务
组任务办理流程
解决问题:为什么流程图复制之后修改了但是xml文件不会变?
用户查询组任务
代码D:\WorkSpace\IDEA\springboot-activiti\src\main\java\com\wang\day05\GroupTest.java
视频:80
用户拾取组任务
视频81 代码GroupTest
用户查询个人组任务
视频81 代码GroupTest
用户办理个人组任务
视频81 代码GroupTest
归还组任务
视频83
一行代码搞定
任务交接
视频84 代码GroupTest
数据库表操作
视频85
第五章 网关
视频86开始
5.1排他网关
代码D:\WorkSpace\IDEA\springboot-activiti\src\main\java\com\wang\day05\ExclusiveGateWayTest01.java 视频87定义 88流程图画法 89效果展示
在流程图里画一个排他网关。
当多个条件成立时,选择排他网关,排他网关选择在其中的一个。优先序号小的一个。
当多个条件都不成立时,排他网关就不可以了。
5.2并行网关
视频90 代码D:\WorkSpace\IDEA\springboot-activiti\src\main\java\com\wang\day05\ParallelGateWayTest.java
5.3包含网关
视频:93、94画流程图、95
代码:D:\WorkSpace\IDEA\springboot-activiti\src\main\java\com\wang\day05\InclusiveGateWayTest.java
测试:
课程总结96
以上所有代码的地址:D:\WorkSpace\IDEA\springboot-activiti
第一章Activiti与Spring整合开发97
整合开发流程
视频:97、98
代码:D:\WorkSpace\IDEA\activiti06
运行总结:
第二章 Activiti7现状分析
视频101
activiti7新的API
processRuntime
taskRuntime
第三章 springboot与activiti整合
视频105:环境准备
代码:D:\WorkSpace\IDEA\activitispringboot06
用户组的关系:
Assignee :直接设置任务执行人
Candidate-user:设置候选用户,格式:wangwu,zhangsan,zhaoliu
依然要指定具体的用户信息
Candiate-Groups:特点不需要知道具体的用户信息
只需要知道组名就可以
bpmn最好放到processes文件夹,会自动读取,简单快捷
springboot整合Junit方式测试新特性
未解决问题:activiti7与springboot结合后,原来的25张表少去了历史表?如何搞出来?
结合之后的流程图、流程部署、流程定义、 任务的查询、拾取、完成
视频:108、109、110
代码:D:\WorkSpace\IDEA\activitispringboot06\src\test\java\com\wang\activiti*ActivitiTest.java*
第四章 Activiti7+SpringBoot+SpringMVC开发
视频:112
代码:D:\WorkSpace\IDEA\activitispringboot06\src\main\java\com\wang\activiti\controller\MyController.java
目录