Activiti
# Activiti
Activiti5手册 : http://shouce.jb51.net (opens new window)
Activiti API : https://www.activiti.org (opens new window)
# 简介
Activiti工作流。由多任务人协同完成的一个复杂的业务流的框架
它能够对业务流程自动化的管理,而且也是多人共同完成的一个流程任务的业务
特点:
- 图形化,把复杂的业务流进行图形化处理
- 数据化,图形化的业务部署到流程数据库中
- 流程表,流程数据库,共有23张表
- API,提供了一套API,业务对象
- 持久层: MyBatis实现
# 首次应用
应用的前提首先需要深层数据库,需要数据库进行
步骤:
# 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生成库的方式有两种分别是:
# JDBC生成
步骤:
- 创建 配置文件 引擎对象
- 配置 数据库连接源
- 解决 重复覆盖问题
- 获取 流程引擎对象
@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资源管理类 进行部署,部署形式有两种方式:
部署信息涉及表有:
- 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
为什么还要安装呢?
- idea2021不能兼容常用的actiBPM
- Activiti BPMN visualize 会找不到加入监听器的功能
- 关于 assignee 失效
解决办法:将camunda 替换为 activiti,命名空间改为activity的命名空间,
- 加入xmlns:activiti=“http://activiti.org/bpmn”
- camunda改为activiti
# SSM整合Activiti
步骤:
引入Activiti配置。在Spring的xml配置中引入 ==
== 配置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)
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; .... }