在计算机的辅助下,能够实现流程的自动化控制,就称为工作流。
通过编码方式设置 flag状态来进行工作流,这种方式的缺点是业务流程变更后,程序不可使用。
Activiti可以是做到业务流程变化后,程序代码不用改变。以不变应万变。
工作原理:
1.先将流程图画好
2.将流程图中每个节点的数据读取并放入表中
3.处理表中的第一条数据,处理并删除
4.重复步骤3. (直到表中记录完了)
实现这个自动化需要
1.业务流程图标准,规范统一
2.业务流程图本质上是一个xml文件,这样就可以存入所需要的数据
3.读取业务流程图的过程就是解析xml文件的过程
4.读取业务流程图中的一个节点,就相当于解析xml结构,进一步将数据插入到数据库表中形成一条记录
5.将所有节点都读取并存入数据库表中
6.后面只需要读取数据库表中的一条记录,读一条记录相当于读取一个节点
7.业务流程的推进,后面就转化为读取表中的数据,并且处理数据,结束时这一行数据就可以删除
技术方案大概涉及到:
xml存流程图数据+dom4j解析+mysql数据库+jdbc CRUD操作
Activiti7会提供25张表作为支撑,进行流程存储控制。
开发步骤
1.整合Activiti 导jar包
2.实现业务流程建模,使用BPMN实现业务流程图
3.部署业务流程到Acitiviti
4.启动流程实例
5.查询待办任务
6.处理代办任务
7.循环6.7.
8.结束流程
开发环境
jdk 1.8
mysql 5以上
web容器 tomcat8.5
开发工具eclipse或idea
spring5以上
Activiti 下载
BPMN的安装 Eclipse中将官网下载的流程设计器demo版本解压,
将feature的jar包复制到eclipes的安装目录里面的features中,
把plugs幕目录下的拷贝到eclipse中plugs目录里,这样eclipse就支持BPM designer了。
导入成功后就在eclipse中new中就可以看到Activiti下存在Activiti Diagram以及Activiti Project 了。
这样就可以新建一个java SE项目在src下new一个Activiti Diagram进行测试了。
在创建bpmn文件后如果想保存图片,在eclipse的preference中的Acticiti节点中的save Action中,
勾选Create process definition image when save the diagram。
在IDEA中安装更简单 在File中的setting里面的plugs里面搜索actiBPM然后点击安装即可。
Activiti支持的数据库大致有H2,mysql,oracle,postgres,DB2,mssql
mysql准备库 create database activiti default character set utf8;
准备工作完成后开始创建工程
1 创建maven工程 导包
2 在resource将日志的配置log4j.properties配置好
在resource将Activiti的配置acticiti.cfg.xml配置好 dbcp数据源的配置 processEngine的配置单独启用方式
<./bean>
<./bean>
3 测试类中测试自动创建25张表,执行后会生成25张表
public class ActivitiTest{
@Test
public void testGeneratorTable(){
//1.创建ProcessEngineConfiguration对象
ProcessEngineConfiguration configuration = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("acticiti.cfg.xml");
//2.创建ProcessEngine对象
ProcessEngine processEngine = configuration.bulidProcessEngine ();
}
}
待续16。。。