Activiti工作流引擎使用详解

一、IDEA安装activiti插件

在插件库中查找actiBPM,安装该插件,如果找不到该插件,请到插件库中下载该包手动安装,插件地址

http://plugins.jetbrains.com/plugin/7429-actibpm 安装后重启IDEA

二、activiti基础环境搭建

2.1 actiBPM插件使用示例

将需要用到的activiti包引入到工程中

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-engine</artifactId>
    <version>5.17.0</version>
</dependency>

resources目录下创建diagrams文件夹

右键new,点击BpmnFeil,然后取个名

鼠标左键拖拽StartEvent到界面上,同样再弄几个其他图标

 鼠标放到图标中心会变成黑白扇形,拖拽连线到另一个图标进行画图

 

 

生成png文件

右键点击hello.bpmn,选择Diagrams

点击箭头指的图标,选择生成位置即可

2.2 初始化activiti表结构

2.2.1 通过代码创建工作流使用的表

public class TestActiviti {
    /**
     * 使用代码创建工作流使用的23张表
     */
    @Test
    public void createTable(){
        //创建引擎配置类
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
        configuration.setJdbcDriver("com.mysql.jdbc.Driver");
        configuration.setJdbcUrl("jdbc:mysql://192.168.27.14:3306/activiti");
        configuration.setJdbcUsername("root");
        configuration.setJdbcPassword("root");

        //不自动创建表,需要表存在 DB_SCHEMA_UPDATE_FALSE = "false";
        //先删除表,再创建表 DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";
        //如果表不存在,先创建表 DB_SCHEMA_UPDATE_TRUE = "true";
        configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        //创建工作流核心对象
        ProcessEngine processEngine = configuration.buildProcessEngine();
        System.out.println(processEngine);
    }
}

2.2.2 通过配置文件方式配置数据库等,resourses目录下添加activiti.cfg.xml配置文件,再通过代码初始化工作流使用的表

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 连接数据的配置 -->
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://192.168.27.14:3306/activiti?characterEncoding=utf8"/>
        <property name="jdbcUsername" value="root"/>
        <property name="jdbcPassword" value="root"/>
        <!--  不自动创建表,需要表存在 "false";
              先删除表,再创建表  "create-drop";
              如果表不存在,先创建表"true";
        -->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>

@Test
public void createTable2(){
    ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
            .buildProcessEngine();
}

 2.2.3 那么,能不能再给力一点?前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

@Test
public void createTable3(){
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
}

三、activiti核心api讲解

3.1ProcessEngine

在Activiti中最核心的类,其他的类都是由他而来,由工作流引擎可以创建各个Service,这些Service是调用工作流23张表的服务

@Test
public void getService(){
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    //管理流程定义
    RepositoryService repositoryService = processEngine.getRepositoryService();
    //执行管理,包括启动、推进、删除流程实例等
    RuntimeService runtimeService = processEngine.getRuntimeService();
    //任务管理
    TaskService taskService = processEngine.getTaskService();
    //历史管理(执行完的数据的管理
    HistoryService historyService = processEngine.getHistoryService();
    //组织机构管理
    IdentityService identityService = processEngine.getIdentityService();
    //可选服务,任务表单管理
    FormService formService = processEngine.getFormService();
    
    ManagementService managementService = processEngine.getManagementService();
}

3.2 RepositoryService

是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trouble-Solver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值