1. activiti介绍
Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。
Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
1.1 工作流引擎
ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。
1.2 BPMN
业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)
2. 准备环境
2.1 activiti软件环境
1) JDK1.6或者更高版本
2) 支持的数据库有:h2,mysql,oracle,mysql,db2等
3) 支持activiti运行的jar包,可以通过maven依赖引入
4) 开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本
2.2安装流程设计器(eclipse插件)
1)打开Help Install New Software Add
输入 Name:  Activiti Designer
    Location: /designer/update/
输入完成后,单击OK按钮等待下载完成后安装。
安装完成后在菜单选项中会出现activiti的目录选项
2.3 设置eclipse activit插件的画流程图 选项
打开菜单Windows --> Preferences --> Activiti -->Save 下流程图片的生成方式
勾选上Create process definition image when saving  the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。
2.4 准备开发环境
2.4.1 创建maven web项目,在maven中添加activiti依赖
在eclipse左边工作栏右键New选择创建Maven Project项目,创建一个名为ActivitiTest的项目
点击Finish完成。
右键项目选择Properties,选择Project Facets 勾选上图中的选项,点击Apply,再点击OK
然后将项目转换成web项目,右键项目选择Properties,在Project Facets中做如下勾选,然后点击Appy应用和OK确定
然后右键项目Properties ,选择Deployment Assembly,将test相关目录Remove掉之保留main下面需要发布的内容,如下图
然后点击Appply和OK
然后在l文件中添加以下依赖
<dependencies>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>5.21.0</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>5.21.0</version>
        </dependency>
        <dependency>
            <groupId>vy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.4.3</version>mysql下载app
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>1.7.6</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
    </dependencies>
然后在命令行下mvn  compile 编译当前项目,将需要的包下载到本地仓库
2.4.2 初始化数据库
1)src/main/resource目录下创建l文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"
  xmlns:context="/schema/context" xmlns:tx="/schema/tx"
  xmlns:jee="/schema/jee" xmlns:aop="/schema/aop"
  xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.0.xsd
      /schema/context /schema/context/spring-context-3.0.xsd
      /schema/tx /schema/tx/spring-tx-3.0.xsd
      /schema/jee /schema/jee/spring-jee-3.0.xsd
      /schema/aop /schema/aop/spring-aop-3.0.xsd">
     
   
   
    <bean id="processEngineConfiguration"
        class="ine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="jdbcDriver" value="sql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8" />
        <property name="jdbcUsername" value="root" />
        <property name="jdbcPassword" value="root" />
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
 
</beans>
jdbcUrl为你电脑数据库的url
jdbcUsername为数据库用户名
jdbcPassword为数据库密码
2)在main/java目录下创建任意目录和类
编写创建activiti数据表方法
public class CreateTable {
   
    /****
    * 创建流程表
    * */
    @Test
    public void createTable() {
        ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("l")
                .buildProcessEngine();
       
        System.out.println("------processEngine:" + processEngine);
    }
}
然后运行该测试方法,如果运行成功,在数据库中应该会产生25activiti的相关数据表
2.4.3 activiti表说明
下面是概括了几个常用的数据表
流程部署相关表
act_re_deployement 部署对象表
act_rep_procdef  流程定义表
act_ge_bytearray 资源文件表
act_ge_prperty  主键生成策略表(对于部署对象表的主键ID)
流程实例相关表
act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)
act_hi_procinst 流程实例历史表

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。