Activiti工作流原理

在计算机的辅助下,能够实现流程的自动化控制,就称为工作流。

通过编码方式设置 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 下载

    

      org.activiti

      activiti-dependencies

      7.0.0.Betal

      import

      pom

    

 

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工程 导包

    

      org.activiti

      activiti-engine

      7.0.0.Betal

    

    

      org.activiti

      activiti-spring

      7.0.0.Betal

    

    

      org.activiti

      activiti-bpmn-model

      7.0.0.Betal

    

    

      org.activiti

      activiti-bpmn-converter

      7.0.0.Betal

    

    

      org.activiti

      activiti-json-model

      7.0.0.Betal

    

    

      org.activiti

      activiti-bpmn-layout

      7.0.0.Betal

    

    

      org.activiti.cloud

      activiti-cloud-servers-api

      7.0.0.Betal

    

    

      mysql

      mysql-connector-java

      5.1.40

    

    

      junit

      junit

      4.12

    

    

      log4j

      log4j

      ${log4j.version}

    

    

      org.slf4j

      slf4j-api

      ${slf4j.version}

    

    

      org.slf4j

      slf4j-log4j12

      ${slf4j.version}

    

    

      org.mybatis

      mybatis

      3.4.5

    

    

      commons-dbcp

      commons-dbcp

      1.4

    

 

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。。。

你可能感兴趣的:(Activiti工作流原理)