柏竹 柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档

柏竹

奋斗柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档
  • Java基础

  • JavaWeb

  • 拓展技术

  • 框架技术

    • Maven
    • Activiti
      • 简介
      • 首次应用
        • Jar包引入
        • 生成数据库
        • JDBC生成
        • Spring生成
        • 流程绘制
        • 图形符号
        • 流程引擎
        • 部署流程
        • 单文件部署
        • 压缩包部署
        • 启动流程
        • 流程业务
        • 查询部署流程
        • 查看定义流程
        • 个人任务
        • 流程推进
        • 流程删除
      • Activiti API
        • ProcessEngine
        • DeploymentBuilder
        • DeploymentQuery
        • ProcessInstance
        • ProcessInstanceQuery
        • Task
        • TaskQuery
        • Query
        • Service
        • RepositoryService
        • RuntimeService
        • TaskService
        • HistoryService
      • Activiti 数据库
        • 常用表
        • 所有表
        • actgebytearray
        • actgeproperty
        • acthiactinst
        • acthiattachment
        • acthicomment
        • acthidetail
        • acthiidentitylink
        • acthiprocinst
        • acthitaskinst
        • acthivarinst
        • actidgroup
        • actidinfo
        • actidmembership
        • actiduser
        • actredeployment
        • actremodel
        • actreprocdef
        • actruevent_subscr
        • actruexecution
        • actruidentitylink
        • actrujob
        • actrutask
        • actruvariable
      • IDEA应用Activiti
      • SSM整合Activiti
    • Shiro
    • Dubbo
    • RabbitMQ
    • Netty网络通信
    • Canal
  • 数据库

  • 数据结构

  • Spring

  • SpringMVC

  • SpringBoot

  • SpringClound

  • Ruoyi-Vue-Plus

  • 后端
  • 框架技术
柏竹
2020-02-18
目录

Activiti

# Activiti

Activiti5手册 : http://shouce.jb51.net (opens new window)

Activiti API : https://www.activiti.org (opens new window)

# 简介

Activiti工作流。由多任务人协同完成的一个复杂的业务流的框架

它能够对业务流程自动化的管理,而且也是多人共同完成的一个流程任务的业务

特点:

  • 图形化,把复杂的业务流进行图形化处理
  • 数据化,图形化的业务部署到流程数据库中
  • 流程表,流程数据库,共有23张表
  • API,提供了一套API,业务对象
  • 持久层: MyBatis实现

# 首次应用

应用的前提首先需要深层数据库,需要数据库进行

步骤:

  1. 引入jar包
  2. 生成数据库
  3. 流程绘制
  4. 创建流程引擎
  5. 流程部署
  6. 流程启动
  7. 流程业务

# Jar包引入

Jar包下载:https://mvnrepository.com/artifact/org.activiti/activiti-engine

Maven引入:

<dependencies>
    <!--activiti的核心包-->
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-engine</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-model</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-converter</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-json-converter</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-bpmn-layout</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti.cloud</groupId>
        <artifactId>activiti-cloud-services-api</artifactId>
        <version>7-201710-EA</version>
    </dependency>
    <dependency>
        <groupId>aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.5.4</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.40</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.18</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

# 生成数据库

Activiti生成库的方式有两种分别是:

  • Java程序 纯JDBC 生成
  • Spring生成

# JDBC生成

步骤:

  1. 创建 配置文件 引擎对象
  2. 配置 数据库连接源
  3. 解决 重复覆盖问题
  4. 获取 流程引擎对象
@Test
public void jdbc() {
    /** 步骤:
     *  1. 创建 配置文件对象
     *  2. 配置 数据库连接源
     *  3. 解决 重复覆盖问题
     *  4. 获取 流程引擎对象
     */

    // 1. 流程引擎 配置对象
    ProcessEngineConfiguration config = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();

    // 2. 连接库的数据源配置
    config.setJdbcDriver("com.mysql.cj.jdbc.Driver");
    config.setJdbcUrl("jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC");
    config.setJdbcUsername("root");
    config.setJdbcPassword("root");

    // 3. 解决已存在被覆盖问题
    config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

    // 4. 获取 流程引擎对象
    ProcessEngine processEngine = config.buildProcessEngine();
    System.out.println("processEngine = " + processEngine);
}

# Spring生成

spring loc 配置启动应用即可,搭建主要在 loc 中托管 配置文件对象!!

activiti.cfg.xml配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context" 
       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
">

    <bean id="processEngineConfiguration"
          class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 连接数据的配置 -->
        <property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="jdbcUrl"
                  value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC"/>
        <property name="jdbcUsername" value="root"/>
        <property name="jdbcPassword" value="root"/>
        <!-- 没有表创建表 -->
        <property name="databaseSchemaUpdate" value="true"/>
        <!--
            其余可以在这里进行其他配置
        -->
    </bean>

</beans>

测试启动

@Test
public void spring() {
    ProcessEngineConfiguration config = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");

    config.buildProcessEngine();
    System.out.println("config = " + config);
}

# 流程绘制

BPMN是 activit定义绘制的流程图,它主要用来描述业务流程的基本的符号,一般情况是通过工具进行绘制的一个流程图,流程图的原始文件其实是 XML形式 的文件

绘制方式有很多中:(可以自行选择

  • eclipse自带的绘制工具

  • idea插件 Activiti BPMN visualize 缺陷:不能添加侦听器功能

  • 第三方绘制工具 Camunda

    缺陷:部分标签名不同,导致兼容问题 组件手册:https://docs.camunda.io/docs/components/

# 图形符号

事件Event (圆形

  • Start Event 启动事件

  • Intermediate Event 中间事件

  • End Event 结束时间

活动Activity (长方形 圆角

  • User Task 用户任务 (用户
  • Service Task 服务任务 (齿轮
  • Sub Process 子流程 (添加

网关Gateway

。。。。

流向

。。。。

# 流程引擎

工作流引擎 的创建主要有两种方式:

  • new 硬编码生成
  • loc 容器托管生成

上面生成数据库的步骤也有!

new 硬编码生成

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

loc 容器托管生成

ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
// 获取流程引擎对象:通过 ProcessEngineConfiguration 创建 ProcessEngine
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();

# 部署流程

流程部署通过 RepositoryService资源管理类 进行部署,部署形式有两种方式:

  • 单文件部署 bpmn文件 和 png文件 逐个处理
  • 压缩包流程部署 bpmn文件 和 png文件 zip压缩统一处理

部署信息涉及表有:

  • act_re_deployment
  • act_re_procdef
  • act_ge_bytearray
  • act_ge_property

# 单文件部署

@Test
public void deploy() {
    // 流程引擎
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    Deployment deploy = processEngine.getRepositoryService()
            .createDeployment()
            .name("请假流程")
            .addClasspathResource("diagram/askForLeave.bpmn20.xml")
            .addClasspathResource("image/askForLeave.png")
            .deploy();
    // 输出信息代表成功 (部署的 id/name
    System.out.println("deploy.getId() = " + deploy.getId());
    System.out.println("deploy.getName() = " + deploy.getName());
}

# 压缩包部署

@Test
public void deployProcessByZip() {
    // 获取流程引擎
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    RepositoryService repositoryService = processEngine.getRepositoryService();
    // 流程部署
    // 解释:通过 类加载器src的根路径下找 bpmn/evection.zip 加载读取为二进制流
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("bpmn/evection.zip");
    // 使用 InputStream 构造 ZipInputStream
    ZipInputStream zipInputStream = new ZipInputStream(inputStream);
    // 使用压缩包的流,进行流程的部署
    Deployment deploy = repositoryService.createDeployment()
            .addZipInputStream(zipInputStream)
            .deploy();
    // 输出信息代表成功 (部署的 id/name
    System.out.println("deploy.getId() = " + deploy.getId());
    System.out.println("deploy.getName() = " + deploy.getName());
}

# 启动流程

流程部署完成以后,通过 RuntimeService流程运行管理类 启动实例,是根据流程定义的 key进行启动

该启动的 startProcessInstanceByKey()方法 重载了4个方法:(划分参数说明)

  • startProcessInstanceByKey(String key) 根据部署后的key进行启动流程(key在库中的 act_re_procdef.KEY_字段查到
  • startProcessInstanceByKey(String key, String businessKey) 根据key进行启动,并且 绑定关联key (用于绑定 任务id/单子id 的关键信息 在库中的 act_hi_procinst.BUSINESS_KEY_字段查到
  • startProcessInstanceByKey(String key, Map<String, Object> map) 根据key进行启动,并且 设置流程变量 (在表绘制的时候会根据指定key赋予value值
  • startProcessInstanceByKey(String key, String businessKey, Map<String, Object> map) 以上说明的功能已经要点都有(启动key、绑定关联key、设置流程变量)
@Test
public void startprocess() {
    // 请假流程key
    String key = "askForLeave";
    // 请假单id (leave.12)
    int id = 12;
    String businessKey = "leave."+id;
    // map 传递流程变量
    Map<String, Object> map = new HashMap<>();
    map.put("name","张三");
    ProcessInstance pi = processEngine.getRuntimeService().
            startProcessInstanceByKey(key,businessKey,map);
    System.out.println("pi.getId(): " + pi.getId());
    System.out.println("pi.getProcessDefinitionId(): " + pi.getProcessDefinitionId());
}

# 流程业务

流程业务可以根据以下API进行详细操作,以下展示常用的 流程业务操作

# 查询部署流程

@Autowired
private RepositoryService repositoryService;
public List<Deployment> findAllDeployment() {
    return repositoryService.createDeploymentQuery().list();
}

# 查看定义流程

@Autowired
private RepositoryService repositoryService;
public List<ProcessDefinition> findAllProcessDefinitions() {
    return repositoryService.createProcessDefinitionQuery().list();
}

# 个人任务

@Autowired
private TaskService taskService;
public List<Task> findTaskListByAssignee(String name) {
    return taskService.createTaskQuery().taskAssignee(name).list();
}

# 流程推进

@Autowired
private TaskService taskService;
public void endTask(String TaskId) {
    taskService.complete(TaskId);
}

# 流程删除

@Autowired
private RepositoryService repositoryService;
public void testDel(String id) {
    // 参数2:强制删除与该部署的流程 相关的历史/运行信息
    repositoryService.deleteDeployment(id, true);
}

更多业务功能,可根据以下的API进行操作

# Activiti API

官方API:https://www.activiti.org/javadocs/index.html

# ProcessEngine

org.activiti.engine.ProcessEngine 流程引擎配置接口

提供 工作流操作的所有服务的访问以下都是

类型 方法 说明
void close() 关闭
String getName() 在配置 中的进程引擎名称,没有则默认

# DeploymentBuilder

org.activiti.engine.repository.DeploymentBuilder 创建新部署的生成器接口

构建器实例可以通过 RepositoryService 获得createDeployment()

可以在调用 deploy() 操作之前 将多个 资源/配置 添加到一个部署中。部署后,不能对返回的部署进行任何更改,可以销毁构建器实例 (点击应用实例

常用方法

类型 方法 说明
Deployment deploy() 部署流程
DeploymentBuilder addClasspathResource(String resource) 添加指定路径资源
DeploymentBuilder addInputStream(String resourceName, InputStream inputStream) 添加流形式的资源
DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream) 添加指定zip资源
DeploymentBuilder name(String name) 为流程指定名称
DeploymentBuilder category(String category) 为流程指定类别
更多自行API https://www.activiti.org/javadocs/index.html ....

# DeploymentQuery

org.activiti.engine.repository.DeploymentQuery 部署查询接口

常用方法

类型 方法 说明
DeploymentQuery deploymentCategory(String category) 选择部署类型
DeploymentQuery deploymentCategoryNotEquals(String categoryNotEquals) 选择类型取反
DeploymentQuery deploymentId(String deploymentId) 选择部署id
DeploymentQuery deploymentName(String name) 选择部署name
DeploymentQuery deploymentNameLike(String nameLike) 模糊选择部署name
DeploymentQuery processDefinitionKey(String key) 选择流程key
DeploymentQuery processDefinitionKeyLike(String keyLike) 模糊选择流程key
更多自行API https://www.activiti.org/javadocs/index.html ...

# ProcessInstance

org.activiti.engine.runtime.ProcessInstance 流程实例接口

常用方法

类型 方法 说明
String getBusinessKey() 获取业务key
String getDeploymentId() 获取部署id
String getDescription() 获取 流程描述
String getName() 获取 流程name
String getProcessDefinitionId() 获取流程id
String getProcessDefinitionKey() 获取流程key
String getProcessDefinitionName() 获取流程name
更多自行API https://www.activiti.org/javadocs/index.html ....

# ProcessInstanceQuery

org.activiti.engine.runtime.ProcessInstanceQuery 流程实例查询接口

常用方法

类型 方法 说明
ProcessInstanceQuery processInstanceId(String id) 选择流程实例id
ProcessInstanceQuery processInstanceIds(Set<String> ids) 选择流程实例多个id
ProcessInstanceQuery processInstanceBusinessKey(String businessKey) 选择流程实例的业务id
更多自行API https://www.activiti.org/javadocs/index.html ....

# Task

org.activiti.engine.task.Task 用户任务接口

常用方法

类型 方法 说明
void delegate(String userId) 将任务委托指定id的用户
DelegationState getDelegationState() 获取任务状态(代办/解决)
boolean isSuspended() 任务是否挂起
void setAssignee(String assignee) 设置任务委托人
void setCategory(String category) 设置任务类型
void setDelegationState(DelegationState delegationState) 设置任务状态(代办/解决)
void setDescription(String description) 设置任务描述
void setDueDate(Date dueDate) 设置任务截止时间
void setFormKey(String formKey) 设置任务表单键
void setName(String name) 设置任务名称
void setOwner(String owner) 设置任务负责人id
void setPriority(int priority) 设置任务重要程度
更多自行API https://www.activiti.org/javadocs/index.html ....

# TaskQuery

org.activiti.engine.task.TaskQuery

常用方法

类型 方法 说明
TaskQuery active() 选择活动的任务
TaskQuery excludeSubtasks() 选择没有父节点的任务
TaskQuery suspended() 选择被挂起的任务
TaskQuery taskDelegationState(DelegationState delegationState) 选择指定状态的任务
TaskQuery taskUnassigned() 选择没有委托人的任务
更多自行API https://www.activiti.org/javadocs/index.html ....

# Query

org.activiti.engine.query.Query<T extends Query<?, ?>, U>

该接口用于在以上业务查询功能

常用方法

类型 方法 说明
T asc() 对结果指定属性进行升序排序
long count() 获取结果数
T desc() 对结果指定属性进行降序排序
List<U> list() 查询并获取集合
List<U> listPage(int firstResult, int maxResults) 查询并获取集合(开始位置 , 总量数)
U singleResult() 查询满足提交的结果(一条
更多自行API https://www.activiti.org/javadocs/index.html ....

# Service

Activiti提供了许多Service服务接口,用于 用户业务流程的操作和查看

service总览

service名称 说明
RepositoryService 资源管理接口
RuntimeService 流程运行管理接口
TaskService 任务管理接口
HistoryService 历史管理接口

# RepositoryService

org.activiti.engine.RepositoryService 资源管理接口

**作用:**管理流程发布包 和 流程定义 的操作

常用方法

类型 方法 说明
DeploymentBuilder createDeployment() 部署流程
DeploymentQuery createDeploymentQuery() 查询部署
List<String> getDeploymentResourceNames(String deploymentId) 根据id查资源列表
List<String> getDeploymentResourceNames(String deploymentName) 根据name查资源列表
void deleteDeployment(String deploymentId, boolean cascade) 删除部署资源,运行过程实例是否强制删除
getResourceAsStream()
更多自行API https://www.activiti.org/javadocs/index.html ....

# RuntimeService

org.activiti.engine.RuntimeService 流程运行管理接口

**作用:**获取关于流程执行的相关信息

常用方法

类型 方法 说明
ProcessInstance startProcessInstanceByKey() 启动流程
ProcessInstanceQuery createProcessInstanceQuery() 查询正在运行的流程
更多自行API https://www.activiti.org/javadocs/index.html ....

# TaskService

org.activiti.engine.TaskService 任务管理接口

**作用:**获取与 任务/操作相关 的信息

常用方法

类型 方法 说明
TaskQuery createTaskQuery() 创建任务查询对象
void complete(String id) 推进任务
void complete(String id, Map<String, Object> variables) 推进任务,成功后并填充参数
Comment addComment(String taskId, String processInstanceId, String message) 添加批注。指定 任务id、流程实例id、消息
Comment addComment(String taskId, String processInstanceId, String type, String message) 添加批注。指定 任务id、自定义类型、流程实例id、消息
更多自行API https://www.activiti.org/javadocs/index.html ....

# HistoryService

org.activiti.engine.HistoryService 历史管理接口

**作用:**查询历史信息,执行流程时,引擎会保存很多数据(根据配置)

这与运行时服务不同,因为该运行时信息只包含任何给定时刻的实际运行时状态,并且针对运行时流程执行性能进行了优化。历史信息经过优化,便于查询,并在持久存储中保持永久性

常用方法

类型 方法 说明
HistoricProcessInstanceQuery createHistoricProcessInstanceQuery() 流程实例查询
HistoricTaskInstanceQuery createHistoricTaskInstanceQuery() 任务实例查询
HistoricVariableInstanceQuery createHistoricVariableInstanceQuery() 变量历史查询
ProcessInstanceHistoryLogQuery createProcessInstanceHistoryLogQuery(String processInstanceId) 流程实例日志查询
void deleteHistoricProcessInstance(String processInstanceId) 删除指定流程实例id历史记录
void deleteHistoricTaskInstance(String taskId) 删除指定任务id历史记录
更多自行API https://www.activiti.org/javadocs/index.html ....

# Activiti 数据库

Activiti数据库有23张表,他们大致分类有:

表名前缀 说明
act_re_* 流程定义 和 流程资源
act_ru_* 运行时、流程实例、任务、变量
act_hi_* 流程历史
act_ge_* 通用表

# 常用表

表名 说明
act_ge_bytearray 通用流程定义/流程资源
act_re_deployment 部署流程信息
act_re_procdef 已部署的流程定义
act_ru_execution 运行时流程执行实例
act_ru_task 运行时任务
act_re_procdef 已部署的流程定义
act_hi_procinst 历史的流程实例
act_hi_taskinst 历史的任务实例

# 所有表

表名 说明
act_ge_bytearray 通用流程定义/流程资源
act_ge_property 系统相关属性
act_hi_actinst 历史的流程节点
act_hi_attachment 历史的流程附件
act_hi_comment 历史的说明信息(批注
act_hi_detail 历史的流程运行中的细节信息
act_hi_identitylink 历史的流程运行过程中用户关系
act_hi_procinst 历史的流程实例
act_hi_taskinst 历史的任务实例
act_hi_varinst 历史的流程运行中的变量信息
act_id_group 用户组信息表
act_id_info 用户详细信息表
act_id_membership 用户与用户组对应信息表
act_id_user 用户信息表
act_re_deployment 部署流程信息
act_re_model 模型信息
act_re_procdef 已部署的流程定义
act_ru_event_subscr 运行时事件
act_ru_execution 运行时流程执行实例
act_ru_identitylink 运行时用户关系信息,存储任务节点的参与信息
act_ru_job 运行时作业
act_ru_task 运行时任务
act_ru_variable 运行时变量表

# act_ge_bytearray

二进制数据表,存储通用的流程定义和流程资源

保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
REV_ 乐观锁 int √ Version(版本)
NAME_ 名称 nvarchar(255) √ 部署的文件名称,如:leave.bpmn.png,leave.bpmn20.xml
DEPLOYMENT_ID_ 部署ID nvarchar(64) √ 部署表ID
BYTES_ 字节 varbinary(max) √ 部署文件
GENERATED_ 是否是引擎生成 tinyint √ 0为用户生成,1为activiti生成

索引

名称 字段 类型 说明
ACT_FK_BYTEARR_DEPL DEPLOYMENT_ID_ DEPLOYMENT_ID_ ID部署

# act_ge_property

属性数据表,存储整个流程引擎级别的数据

字段名称 字段描述 数据类型 主键 为空 取值说明
NAME_ 名称 nvarchar(64) √ schema.versionschema.historynext.dbid
VALUE_ 值 nvarchar(300) √ 5.create(5.)
REV_ 乐观锁 int √ version

# act_hi_actinst

历史节点表,历史活动信息

这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √
PROC_DEF_ID_ 流程定义ID nvarchar(64)
PROC_INST_ID_ 流程实例ID nvarchar(64)
EXECUTION_ID_ 执行实例ID nvarchar(64)
ACT_ID_ 节点ID nvarchar(225) 节点定义ID
TASK_ID_ 任务实例ID nvarchar(64) √ 任务实例ID 其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_ 调用外部的流程实例ID nvarchar(64) √ 调用外部流程的流程实例ID’
ACT_NAME_ 节点名称 nvarchar(225) √ 节点定义名称
ACT_TYPE_ 节点类型 nvarchar(225) 如startEvent、userTask
ASSIGNEE_ 签收人 nvarchar(64) √ 节点签收人
START_TIME_ 开始时间 datetime 2013-09-15 11:30:00
END_TIME_ 结束时间 datetime √ 2013-09-15 11:30:00
DURATION_ 耗时 numeric(19,0) √ 毫秒值

索引

名称 字段 类型
ACT_IDX_HI_ACT_INST_START START_TIME_ NORMAL
ACT_IDX_HI_ACT_INST_END END_TIME_ NORMAL
ACT_IDX_HI_ACT_INST_PROCINST PROC_INST_ID_ NORMAL
ACT_IDX_HI_ACT_INST_EXEC EXECUTION_ID_ NORMAL

# act_hi_attachment

历史附件表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
REV_ 乐观锁 integer √ Version
USER_ID_ 用户ID nvarchar(255) √ 用户ID
NAME_ 名称 nvarchar(255) √ 附件名称
DESCRIPTION_ 描述 nvarchar(4000) √ 描述
TYPE_ 类型 nvarchar(255) √ 附件类型
TASK_ID_ 任务实例ID nvarchar(64) √ 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
URL_ URL_ nvarchar(4000) √ 附件地址
CONTENT_ID_ 字节表的ID nvarchar(64) √ ACT_GE_BYTEARRAY的ID

# act_hi_comment

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
TYPE_ 类型 nvarchar(255) √ 类型:event(事件)comment(意见)
TIME_ 时间 datetime 填写时间
USER_ID_ 用户ID nvarchar(64) √ 填写人
TASK_ID_ 节点任务ID nvarchar(64) √ 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(255) √ 流程实例ID
ACTION_ 行为类型 nvarchar(64) √ 见备注1
MESSAGE_ 基本内容 nvarchar(4000) √ 用于存放流程产生的信息,比如审批意见
FULL_MSG_ 全部内容 varbinary(max) √ 附件地址

# act_hi_detail

历史详情表

流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键
TYPE_ 类型 nvarchar(255) 见备注2
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行实例ID
TASK_ID_ 任务实例ID nvarchar(64) √ 任务实例ID
ACT_INST_ID_ 节点实例ID nvarchar(64) √ ACT_HI_ACTINST表的ID
NAME_ 名称 nvarchar(255) 名称
VAR_TYPE_ 参数类型 nvarchar(255) √ 见备注3
REV_ 乐观锁 int √ Version
TIME_ 时间戳 datetime 创建时间
BYTEARRAY_ID_ 字节表ID nvarchar √ ACT_GE_BYTEARRAY表的ID
DOUBLE_ DOUBLE_ double precision √ 存储变量类型为Double
LONG_ LONG_ numeric √ 存储变量类型为long
TEXT_ TEXT_ nvarchar √ 存储变量值类型为String
TEXT2_ TEXT2_ nvarchar √ 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

索引

名称 字段 类型
ACT_IDX_HI_DETAIL_PROC_INST PROC_INST_ID_ NORMAL
ACT_IDX_HI_DETAIL_ACT_INST ACT_INST_ID_ NORMAL
ACT_IDX_HI_DETAIL_TIME TIME_ NORMAL
ACT_IDX_HI_DETAIL_NAME NAME_ NORMAL
ACT_IDX_HI_DETAIL_TASK_ID TASK_ID_ NORMAL

# act_hi_identitylink

历史流程人员表

任务参与者数据表。主要存储历史节点参与者的信息

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
GROUP_ID_ 组ID nvarchar(255) √ 组ID
TYPE_ 类型 nvarchar(255) √ 备注4
USER_ID_ 用户ID nvarchar(255) √ 用户ID
TASK_ID_ 节点实例ID nvarchar(64) √ 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID

索引

名称 字段 类型
ACT_IDX_HI_IDENT_LNK_USER USER_ID_ NORMAL
ACT_IDX_HI_IDENT_LNK_TASK TASK_ID_ NORMAL
ACT_IDX_HI_IDENT_LNK_PROCINST PROC_INST_ID_ NORMAL

# act_hi_procinst

历史流程实例表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
BUSINESS_KEY_ 业务主键 nvarchar(255) √ 业务主键,业务表单的ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
START_TIME_ 开始时间 datetime 开始时间
END_TIME_ 结束时间 datetime √ 结束时间
DURATION_ 耗时 Numeric(19) √ 耗时
START_USER_ID_ 起草人 nvarchar(255) √ 起草人
START_ACT_ID_ 开始节点ID nvarchar(255) √ 起草环节ID
END_ACT_ID_ 结束节点ID nvarchar(255) √ 结束环节ID
SUPER_PROCESS_INSTANCE_ID_ 父流程实例ID nvarchar(64) √ 父流程实例ID
DELETE_REASON_ 删除原因 nvarchar(4000) √ 删除原因

索引

名称 字段 类型
PROC_INST_ID_ PROC_INST_ID_ UNIQUE
ACT_UNIQ_HI_BUS_KEY PROC_DEF_ID_ , BUSINESS_KEY_ UNIQUE
ACT_IDX_HI_PRO_INST_END END_TIME_ NORMAL
ACT_IDX_HI_PRO_I_BUSKEY BUSINESS_KEY_ NORMAL

# act_hi_taskinst

历史任务实例表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) √ 流程定义ID
TASK_DEF_KEY_ 节点定义ID nvarchar(255) √ 节点定义ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行实例ID
NAME_ 名称 varchar(255) √ 名称
PARENT_TASK_ID_ 父节点实例ID nvarchar(64) √ 父节点实例ID
DESCRIPTION_ 描述 nvarchar(400) √ 描述
OWNER_ 实际签收人 任务的拥有者 nvarchar(255) √ 签收人(默认为空,只有在委托时才有值)
ASSIGNEE_ 签收人或被委托 nvarchar(255) √ 签收人或被委托
START_TIME_ 开始时间 datetime 开始时间
CLAIM_TIME_ 提醒时间 datetime √ 提醒时间
END_TIME_ 结束时间 datetime √ 结束时间
DURATION_ 耗时 numeric(19) √ 耗时
DELETE_REASON_ 删除原因 nvarchar(4000) √ 删除原因(completed,deleted)
PRIORITY_ 优先级别 int √ 优先级别
DUE_DATE_ 过期时间 datetime √ 过期时间,表明任务应在多长时间内完成
FORM_KEY_ 节点定义的formkey nvarchar(255) √ desinger节点定义的form_key属性

# act_hi_varinst

历史变量表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(255) √ 执行实例ID
TASK_ID_ 任务实例ID nvarchar(64) √ 任务实例ID
NAME_ 名称 nvarchar(64) 参数名称(英文)
VAR_TYPE_ 参数类型 varchar(255) √ 备注5
REV_ 乐观锁 nvarchar(64) √ 乐观锁 Version
BYTEARRAY_ID_ 字节表ID nvarchar(400) √ ACT_GE_BYTEARRAY表的主键
DOUBLE_ DOUBLE_ nvarchar(255) √ 存储DoubleType类型的数据
LONG_ LONG_ nvarchar(255) √ 存储LongType类型的数据
TEXT_ TEXT_ datetime √ 备注6
TEXT2_ TEXT2_ datetime √ 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

索引

名称 字段 类型
ACT_IDX_HI_PROCVAR_PROC_INST PROC_INST_ID_ NORMAL
ACT_IDX_HI_PROCVAR_NAME_TYPE NAME_ , VAR_TYPE_ NORMAL

# act_id_group

用户组信息表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
REV_ 乐观锁 int √ 乐观锁Version
NAME_ 名称 nvarchar(255) √ 组名称
TYPE_ 类型 nvarchar(255) √ 类型

# act_id_info

用户扩展信息表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
REV_ 乐观锁 int √ 乐观锁Version
USER_ID_ 用户ID nvarchar(64) √
TYPE_ 类型 nvarchar(64) √
KEY_ nvarchar(255) √
VALUE_ nvarchar(255) √
PASSWORD_ Image √
PARENT_ID_ nvarchar(255) √

# act_id_membership

用户与分组对应信息表

用来保存用户的分组信息

字段名称 字段描述 数据类型 主键 为空 取值说明
USER_ID 用户ID nvarchar(64) √
GROUP_ID 用户组ID nvarchar(64) √

索引

名称 字段 类型
ACT_FK_MEMB_GROUP GROUP_ID_ NORMAL

# act_id_user

用户信息表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
REV_ 乐观锁 int √ 乐观锁Version
FIRST_ 姓 nvarchar(255) √
LAST_ 名 nvarchar(255) √
EMAIL_ EMAIL_ nvarchar(255) √
PWD_ 密码 nvarchar(255) √
PICTURE_ID_ 图片ID nvarchar(64) √

# act_re_deployment

部署信息表

部署流程定义时需要被持久化保存下来的信息

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键ID
NAME_ 部署名称 nvarchar(255) √ 部署文件名
CATEGORY_ 分类 nvarchar(255) √ 类别
DEPLOY_TIME_ 部署时间 datetime √ 部署时间

# act_re_model

流程设计模型部署表

流程设计器设计流程后,保存数据到该表

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
REV_ 乐观锁 int √ 乐观锁
NAME_ 名称 nvarchar(255) √ 名称
KEY_ KEY_ nvarchar(255) √ 分类
CATEGORY_ 分类 nvarchar(255) √ 分类
CREATE_TIME_ 创建时间 datetime √ 创建时间
LAST_UPDATE_TIME_ 最新修改时间 datetime √ 最新修改时间
VERSION_ 版本 int √ 版本
META_INFO_ META_INFO_ nvarchar(255) √ 以json格式保存流程定义的信息
DEPLOYMENT_ID_ 部署ID nvarchar(255) √ 部署ID
EDITOR_SOURCE_VALUE_ID_ datetime √
EDITOR_SOURCE_EXTRA_VALUE_ID_ datetime √

索引

名称 字段 类型
ACT_FK_MODEL_SOURCE EDITOR_SOURCE_VALUE_ID_ NORMAL
ACT_FK_MODEL_SOURCE_EXTRA EDITOR_SOURCE_EXTRA_VALUE_ID_ NORMAL
ACT_FK_MODEL_DEPLOYMENT DEPLOYMENT_ID_ NORMAL

# act_re_procdef

流程定义数据表

业务流程定义数据表。此表和 act_re_deployment 是多对一的关系,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在 act_re_procdef表内,每个流程定义的数据,都会对于 act_ge_bytearray表内的一个资源文件和 PNG 图片文件。和 act_ge_bytearray的关联是通过程序用 act_ge_bytearray.NAME 与 act_re_procdef.NAME 完成的,在数据库表结构中没有体现。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
REV_ 乐观锁 int √ 乐观锁
CATEGORY_ 分类 nvarchar(255) √ 流程定义的Namespace就是类别
NAME_ 名称 nvarchar(255) √ 名称
KEY_ 定义的KEY nvarchar(255) 流程定义ID
VERSION_ 版本 int 版本
DEPLOYMENT_ID_ 部署表ID nvarchar(64) √ 部署表ID
RESOURCE_NAME_ bpmn文件名称 nvarchar(4000) √ 流程bpmn文件名称
DGRM_RESOURCE_NAME_ png图片名称 nvarchar(4000) √ 流程图片名称
DESCRIPTION_ 描述 nvarchar(4000) √ 描述
HAS_START_FORM_KEY_ 是否存在开始节点formKey tinyint √ start节点是否存在formKey 0否 1是
SUSPENSION_STATE_ 是否挂起 tinyint √ 1 激活 2挂起

索引

名称 字段 类型
ACT_UNIQ_PROCDEF KEY_ , VERSION_ UNIQUE

# act_ru_event_subscr

事件订阅表(act_ru_event_subscr)

事件订阅表。此表包含所有当前存在的事件订阅。它包括预期事件的类型,名称和配置,以及有关相应流程实例和执行的信息。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ 事件ID nvarchar(64) √ 事件ID
REV_ 版本 int √ 乐观锁Version
EVENT_TYPE_ 事件类型 nvarchar(255) 事件类型
EVENT_NAME_ 事件名称 nvarchar(255) √ 事件名称
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
ACTIVITY_ID_ 活动实例ID nvarchar(64) √ 活动实例ID
CONFIGURATION_ 配置 nvarchar(255) √ 配置
CREATED_ 是否创建 datetime 默认值 当前系统时间戳CURRENT_TIMESTAMP

索引

名称 字段 类型
ACT_IDX_EVENT_SUBSCR_CONFIG_ CONFIGURATION_ NORMAL
ACT_FK_EVENT_EXEC EXECUTION_ID_ NORMAL

# act_ru_execution

运行时流程执行实例表( act_ru_execution )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
REV_ 乐观锁 int √ 乐观锁
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
BUSINESS_KEY_ 业务主键ID nvarchar(255) √ 业务主键ID
PARENT_ID_ 父节点实例ID nvarchar(64) √ 父节点实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) √ 流程定义ID
SUPER_EXEC_ SUPER_EXEC_ nvarchar(64) √ SUPER_EXEC_
ACT_ID_ 节点实例ID nvarchar(255) √ 节点实例ID即ACT_HI_ACTINST中ID
IS_ACTIVE_ 是否存活 tinyint √ 是否存活
IS_CONCURRENT_ 是否并行 tinyint √ 是否为并行(true/false)
IS_SCOPE_ IS_SCOPE_ tinyint √ IS_SCOPE_
IS_EVENT_SCOPE_ IS_EVENT_SCOPE_ tinyint √ IS_EVENT_SCOPE_
SUSPENSION_STATE_ 是否挂起 tinyint √ 挂起状态 1激活 2挂起
CACHED_ENT_STATE_ int √

索引

名称 字段 类型
ACT_UNIQ_RU_BUS_KEY PROC_DEF_ID_ , BUSINESS_KEY_ UNIQUE
ACT_IDX_EXEC_BUSKEY BUSINESS_KEY_ NORMAL
ACT_FK_EXE_PROCINST PROC_INST_ID_ NORMAL
ACT_FK_EXE_PARENT PARENT_ID_ NORMAL
ACT_FK_EXE_SUPER SUPER_EXEC_ NORMAL

# act_ru_identitylink

运行时流程人员表( act_ru_identitylink )

任务参与者数据表。主要存储当前节点参与者的信息。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
REV_ 乐观锁 int √ 乐观锁
GROUP_ID_ 组ID nvarchar(64) √ 组ID
TYPE_ 类型 nvarchar(255) √ 备注7
USER_ID_ 用户ID nvarchar(64) √ 用户ID
TASK_ID_ 节点实例ID nvarchar(64) √ 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(255) √ 流程定义ID

索引

名称 字段 类型
ACT_IDX_IDENT_LNK_USER USER_ID_ NORMAL
ACT_IDX_IDENT_LNK_GROUP GROUP_ID_ NORMAL
ACT_IDX_ATHRZ_PROCEDEF PROC_DEF_ID_ NORMAL
ACT_FK_TSKASS_TASK TASK_ID_ NORMAL
ACT_FK_IDL_PROCINST PROC_INST_ID_ NORMAL

# act_ru_job

运行时定时任务数据表( act_ru_job )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ 标识 nvarchar(64) √ 标识
REV_ 版本 int √ 版本
TYPE_ 类型 nvarchar(255) 类型
LOCK_EXP_TIME_ 锁定释放时间 datetime √ 锁定释放时间
LOCK_OWNER_ 挂起者 nvarchar(255) √ 挂起者
EXCLUSIVE_ bit √
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行实例ID
PROCESS_INSTANCE_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) √ 流程定义ID
RETRIES_ int √
EXCEPTION_STACK_ID_ 异常信息ID nvarchar(64) √ 异常信息ID
EXCEPTION_MSG_ 异常信息 nvarchar(4000) √ 异常信息
DUEDATE_ 到期时间 datetime √ 到期时间
REPEAT_ 重复 nvarchar(255) √ 重复
HANDLER_TYPE_ 处理类型 nvarchar(255) √ 处理类型
HANDLER_CFG_ nvarchar(4000) √ 标识

索引

名称 字段 类型
ACT_FK_JOB_EXCEPTION EXCEPTION_STACK_ID_ NORMAL

# act_ru_task

运行时任务节点表( act_ru_task )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ ID_
REV_ 乐观锁 int √ 乐观锁
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) √ 流程定义ID
NAME_ 节点定义名称 nvarchar(255) √ 节点定义名称
PARENT_TASK_ID_ 父节点实例ID nvarchar(64) √ 父节点实例ID
DESCRIPTION_ 节点定义描述 nvarchar(4000) √ 节点定义描述
TASK_DEF_KEY_ 节点定义的KEY nvarchar(255) √ 任务定义的ID
OWNER_ 实际签收人 nvarchar(255) √ 拥有者(一般情况下为空,只有在委托时才有值)
ASSIGNEE_ 签收人或委托人 nvarchar(255) √ 签收人或委托人
DELEGATION_ 委托类型 nvarchar(64) √ 备注8
PRIORITY_ 优先级别 int √ 优先级别,默认为:50
CREATE_TIME_ 创建时间 datetime √ 创建时间
DUE_DATE_ 过期时间 datetime √ 耗时
SUSPENSION_STATE_ 是否挂起 int √ 1代表激活 2代表挂起

索引

名称 字段 类型
ACT_IDX_TASK_CREATE CREATE_TIME_ NORMAL
ACT_FK_TASK_EXE EXECUTION_ID_ NORMAL
ACT_FK_TASK_PROCINST PROC_INST_ID_ NORMAL
ACT_FK_TASK_PROCDEF PROC_DEF_ID_ NORMAL

# act_ru_variable

运行时流程变量数据表( act_ru_variable )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) √ 主键标识
REV_ 乐观锁 int √ 乐观锁
TYPE_ 类型 nvarchar(255) 备注9
NAME_ 名称 nvarchar(255) 变量名称
EXECUTION_ID_ 执行实例ID nvarchar(64) √ 执行的ID
PROC_INST_ID_ 流程实例ID nvarchar(64) √ 流程实例ID
TASK_ID_ 节点实例ID nvarchar(64) √ 节点实例ID(Local)
BYTEARRAY_ID_ 字节表ID nvarchar(64) √ 字节表的ID(ACT_GE_BYTEARRAY)
DOUBLE_ DOUBLE_ float √ 存储变量类型为Double
LONG_ LONG_ numeric(19) √ 存储变量类型为long
TEXT_ TEXT_ nvarchar(4000) √ 存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
TEXT2_ TEXT2_ nvarchar(4000) √ 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

索引

名称 字段 类型
ACT_IDX_VARIABLE_TASK_ID TASK_ID_ NORMAL
ACT_FK_VAR_EXE EXECUTION_ID_ NORMAL
ACT_FK_VAR_PROCINST PROC_INST_ID_ NORMAL
ACT_FK_VAR_BYTEARRAY BYTEARRAY_ID_ NORMAL

# IDEA应用Activiti

IDEA安装插件:Activiti BPMN visualize

安装第三方:Camunda (Camunda应用:https://zhuanlan.zhihu.com/p/375908620

QA:有了Activiti BPMN visualize为什么还要安装呢?

  1. idea2021不能兼容常用的actiBPM
  2. Activiti BPMN visualize 会找不到加入监听器的功能
  3. 关于 assignee 失效 解决办法:将camunda 替换为 activiti,命名空间改为activity的命名空间,
    1. 加入xmlns:activiti=“http://activiti.org/bpmn”
    2. camunda改为activiti

# SSM整合Activiti

步骤:

  1. 引入Activiti配置。在Spring的xml配置中引入 ====

  2. 配置Activiti配置 activiti-context.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
    ">
    
        <!-- spring负责创建流程引擎的配置文件 -->
        <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
            <!-- 数据源 -->
            <property name="dataSource" ref="dataSource"/>
            <!-- 配置事务管理器,统一事务 -->
            <property name="transactionManager" ref="transManager"/>
            <!-- 设置建表策略,如果没有表,自动创建表 -->
            <property name="databaseSchemaUpdate" value="true"/>
        </bean>
        <!-- 创建流程引擎对象 -->
        <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
            <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
        </bean>
    
        <!-- 由流程引擎对象,提供的方法,创建项目中使用的Activiti工作流的Service -->
        <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/>
        <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"/>
        <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>
        <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
        <bean id="formService" factory-bean="processEngine" factory-method="getFormService"/>
    
    </beans>
    

    PS: Spring配置的上下中有 事务(transManager)、数据库连接源(dataSource)

  3. Serivce业务应用。自动注入服务对象即可

    @Service
    public class ActivitiServiceImpl implements ActivitiService {
    	@Autowired
        private RepositoryService repositoryService;
        @Autowired
        private RuntimeService runtimeService;
        @Autowired
        private TaskService taskService;
        @Autowired
        private HistoryService historyService;
        @Autowired
        private FormService formService;
        
        ....
    }
    
#工作流
上次更新: 2023/03/12, 00:43:49

← Maven Shiro→

最近更新
01
HTTPS自动续签
10-21
02
博客搭建-简化版(脚本)
10-20
03
ruoyi-vue-plus-部署篇
07-13
更多文章>
Theme by Vdoing | Copyright © 2019-2024 | 桂ICP备2022009417号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式