侧边栏壁纸
博主头像
彼豆博主等级

行动起来,活在当下

  • 累计撰写 14 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Activiti初始化

彼豆
2020-11-16 / 0 评论 / 0 点赞 / 10 阅读 / 16639 字

流程设计插件安装

Eclipse

在线安装 打开 Help -> Install New Software,在线安装地址如下

Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/

也可以参考 https://blog.csdn.net/lovemenghaibin/article/details/50568858

IDEA

IDEA 在2019版本之后,不再支持在线安装,需要离线安装。在线安装:菜单栏 File -> Setting -> Plugins 右边搜索 actiBPM,然后 install ,然后重新启动 idea 开发工具。

搭建环境

使用maven引入Activiti

    <properties>
        <activiti-version>5.22.0</activiti-version>
        <mysql-version>8.0.22</mysql-version>
        <junit-version>4.13</junit-version>
        <sl4j-log4j-version>1.7.2</sl4j-log4j-version>
    </properties>

    <dependencies>
        <!--activiti-->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>${activiti-version}</version>
        </dependency>

        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-version}</version>
        </dependency>

        <!--log4j日志-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${sl4j-log4j-version}</version>
        </dependency>

        <!--junit测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
        </dependency>

    </dependencies>

Activiti配置

创建 ProcessEngine

通过配置文件activiti.cfg.xml配置流程引擎的相关信息,如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="databaseType" value="mysql" />

        <!--
        生命数据库脚本更新策略
            false: 表示什么都不做
            true: 当act表不存在时自动创建,jar版本与数据库内记录的版本不一致时自动执行升级脚本,并记录升级过程
            create-drop: 创建引擎时初始化脚本,引擎销毁时执行删除脚本
       -->
        <property name="databaseSchemaUpdate" value= "true"/>

        <!--
          是否启用作业执行功能,默认为false。如果设置为true,会不断刷新作业表,存在作业就触发
        -->
        <property name="jobExecutorActivate" value= "false"/>

        <!--
        记录历史的级别,默认为audit
            none: 不保存任何历史记录,可提高系统性能
            activity: 保存所有流程实例、任务、活动信息
            audit: 保存所有流程实例、任务、活动、表单属性。
            full: 完整的历史记录,包含audit以外还有其它记录,如流程变量、表单属性等
        -->
        <property name="history" value= "audit"/>

        <property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/act-test?characterEncoding=UTF-8&amp;
        useUnicode=true&amp;useSSL=false&amp;tinyInt1isBit=false&amp;allowPublicKeyRetrieval=true&amp;
        serverTimezone=UTC&amp;nullCatalogMeansCurrent=true" />
        <property name="jdbcUsername" value="root" />
        <property name="jdbcPassword" value="root" />

    </bean>
</beans>

可通过以下方法启动并创建Activiti数据表

package com.fn2xn.act01;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @Description 初始化Activiti表测试
 * @Author fn2xn
 * @date 2020/11/16 11:24
 */
public class InitProcessEngineTest {

    private static final Logger logger = LoggerFactory.getLogger(InitProcessEngineTest.class);
    /**
     * 建表方式一,读取根目录下的配置文件
     */
    @Test
    public void initMode1Test(){
        ProcessEngine processEngine = ProcessEngineConfiguration
                .createProcessEngineConfigurationFromResource("activiti.cfg.xml")
                .buildProcessEngine();
        logger.info("方式一=============={}", processEngine);
    }
    /**
     * 建表方式二
     */
    @Test
    public void initMode2Test(){
        ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration()
                .setJdbcDriver("com.mysql.cj.jdbc.Driver")
                .setJdbcUrl("jdbc:mysql://127.0.0.1:3306/act-test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&nullCatalogMeansCurrent=true")
                .setJdbcUsername("root")
                .setJdbcPassword("root")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
                .buildProcessEngine();
        logger.info("方式二=============={}", processEngine);
    }
    /**
     * 建表方式三
     */
    @Test
    public void initMode3Test(){
        char[] chars = "".toCharArray();
        // 默认去寻找根目录下的 activiti.cfg.xml文件
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        logger.info("方式三=============={}", processEngine);
    }

}

源码链接:https://github.com/dou-chi/some-practise/tree/master/activiti-practise/act-module-01

表说明

Activiti 数据库中表的命名都是以 ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务 API 是匹配的。

  • ACT_RE_*:’RE’代表 repository。带此前缀的表包含的是静态信息,如,流程定义、流程的资源(图片、规则,等)。

  • ACT_RU_*:’RU’代表 runtime。就是这个运行时的表存储着流程变量、用户任务、变量、作业,等中的运行时的数据。
    Activiti 只存储流程实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就使这些运行时的表保持
    的小且快。

  • ACT_ID_*:’ID’代表 identity。这些表包含着标识的信息,如用户、用户组、等等。

  • ACT_HI_*:’HI’代表 history。就是这些表包含着历史的相关数据,如结束的流程实例、变量、任务、等等。

  • ACT_GE_*:普通数据,各种情况都使用的数据。

    常用的查询SQL

#RepositoryService
SELECT * FROM `act_ge_bytearray`; #二进制文件表
SELECT * FROM `act_re_deployment`;#流程部署表
SELECT * FROM `act_re_procdef`;#流程定义
SELECT * FROM `act_ge_property`;#工作流的ID算法和版本信息表

#RuntimeService   TaskService
SELECT * FROM `act_ru_execution`;#流程启动一次只要没有执行完,就会有一条数据
SELECT * FROM `act_ru_task`;#可能有多条数据
SELECT * FROM `act_ru_variable`;#记录流程运行时的流程变量
SELECT * FROM `act_ru_identitylink`;#存放流程办理人的信息

#HistroyService
SELECT * FROM `act_hi_procinst`;#历史流程实例
SELECT * FROM `act_hi_taskinst`;#历史任务实例
SELECT * FROM `act_hi_actinst`;#历史活动节点表
SELECT * FROM `act_hi_varinst`;#历史流程变量表
SELECT * FROM `act_hi_identitylink`;##历史办理人表
SELECT * FROM `act_hi_comment`;#批注表
SELECT * FROM `act_hi_attachment`;#附件表

#IdentityService
SELECT * FROM `act_id_group` #角色
SELECT * FROM `act_id_membership`#用户和角色之间的关系
SELECT * FROM `act_id_info`#用户的详细信息
SELECT * FROM `act_id_user`#用户表

0

评论区