Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(三)

简介: Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)

ACT_RU_TASK 运行时任务表 :会新生成一条记录

ACT_RU_VARIABLE 运行时变量表:会记录新的流程变量

当然流程实例也可以挂起

// 1.获取ProcessEngine对象
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 2.获取RuntimeService
RuntimeService runtimeService = engine.getRuntimeService();
// 3.获取流程实例对象
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
    .processInstanceId("25001")
    .singleResult();
// 4.获取相关的状态操作
boolean suspended = processInstance.isSuspended();
String id = processInstance.getId();
if(suspended){
    // 挂起--》激活
    runtimeService.activateProcessInstanceById(id);
    System.out.println("流程定义:" + id + ",已激活");
}else{
    // 激活--》挂起
    runtimeService.suspendProcessInstanceById(id);
    System.out.println("流程定义:" + id + ",已挂起");
}

启动第二个流程实例后再查看相关的表结构时,对他们的关系理解会更加的清楚一些

启动一个新的流程实例对应的就会产生两条记录

IDENTITYLINK中会记录每次流程操作的信息

流程变量数据,及时key 相同,但是属于不同的流程实例相互间也是隔离的

完成流程

然后我们把第一个流程处理完成

ProcessEngine processEngine = cfg.buildProcessEngine();
TaskService taskService = processEngine.getTaskService();
Task task = taskService.createTaskQuery()
    .processDefinitionId("holiday:1:4")
    .taskAssignee("lisi")
    .singleResult();
// 添加流程变量
Map<String,Object> variables = new HashMap<>();
variables.put("approved",false); // 拒绝请假
// 完成任务
taskService.complete(task.getId(),variables);

处理完了一个工作流程后,我们来看看相关的表结构信息

首先我们会发现

  • ACT_RU_EXECUTION 运行时流程执行实例
  • ACT_RU_IDENTITYLINK 运行时用户关系信息
  • ACT_RU_TASK 运行时任务表
  • ACT_RU_VARIABLE 运行时变量表

这四张表中对应的数据都没有了,也就是这个流程已经不是运行中的流程了。然后在对应的历史表中我们可以看到相关的信息

  • 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_HI_ACTINST 历史的流程实例

字段 名称 备注
ID_ 主键
PROC_DEF_ID_ 流程定义ID
PROC_INST_ID_ 流程实例ID
EXECUTION_ID_ 执行ID
ACT_ID_ 节点实例ID
TASK_ID_ 任务ID
CALL_PROC_INST_ID_ 调用外部的流程实例ID
ACT_NAME_ 节点名称
ACT_TYPE_ 节点类型
ASSIGNEE_ 处理人
START_TIME_ 开始时间
END_TIME_ 结束时间
DURATION_ 耗时
DELETE_REASON_ 删除原因
TENANT_ID_ 租户编号

ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系

字段 名称 备注
ID_ 主键
GROUP_ID_ 组编号
TYPE_ 类型
USER_ID_ 用户编号
TASK_ID_ 任务编号
CREATE_TIME_ 创建时间
PROC_INST_ID_ 流程实例编号
SCOPE_ID_
SCOPE_TYPE_
SCOPE_DEFINITION_ID_

ACT_HI_PROCINST 历史的流程实例

字段 名称 备注
ID_ 主键
PROC_INST_ID_ 流程实例ID
BUSINESS_KEY_ 业务主键
PROC_DEF_ID_ 属性ID
START_TIME_ 开始时间
END_TIME_ 结束时间
DURATION_ 耗时
START_USER_ID_ 起始人
START_ACT_ID_ 起始节点
END_ACT_ID_ 结束节点
SUPER_PROCESS_INSTANCE_ID_ 父流程实例ID
DELETE_REASON_ 删除原因
TENANT_ID_ 租户编号
NAME_ 名称

ACT_HI_TASKINST 历史的任务实例

字段 名称 备注
ID_ 主键
PROC_DEF_ID_ 流程定义ID
TASK_DEF_KEY_ 任务定义的ID值
PROC_INST_ID_ 流程实例ID
EXECUTION_ID_ 执行ID
PARENT_TASK_ID_ 父任务ID
NAME_ 名称
DESCRIPTION_ 说明
OWNER_ 实际签收人 任务的拥有者 签收人(默认为空,只有在委托时才有值)
ASSIGNEE_ 被指派执行该任务的人
START_TIME_ 开始时间
CLAIM_TIME_ 任务拾取时间
END_TIME_ 结束时间
DURATION_ 耗时
DELETE_REASON_ 删除原因
PRIORITY_ 优先级别
DUE_DATE_ 过期时间
FORM_KEY_ 节点定义的formkey
CATEGORY_ 类别
TENANT_ID_ 租户

ACT_HI_VARINST 历史的流程运行中的变量信息:流程变量虽然在任务完成后在流程实例表中会删除,但是在历史表中还是会记录的

字段 名称 备注
ID_ 主键
PROC_INST_ID_ 流程实例ID
EXECUTION_ID_ 指定ID
TASK_ID_ 任务ID
NAME_ 名称
VAR_TYPE_ 参数类型
REV_ 数据版本
BYTEARRAY_ID_ 字节表ID
DOUBLE_ 存储double类型数据
LONG_ 存储long类型数据

好了一个相对简单的流程处理涉及到的相关表结构内容就介绍完了

相关文章
|
7月前
|
数据可视化 前端开发 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(一)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
370 0
|
7月前
|
数据处理 数据安全/隐私保护
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(二)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
266 0
|
7月前
|
XML Java 数据库
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(一)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
131 0
|
7月前
|
XML 数据可视化 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(二)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
213 0
|
7月前
|
数据可视化 安全 前端开发
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(三)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
177 0
|
10月前
|
缓存 Java Spring
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)(下)
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)(下)
63 0
|
10月前
|
存储 XML 前端开发
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)(上)
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)
44 0
|
10月前
|
存储 XML 缓存
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(一)(下)
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(一)
55 0
|
10月前
|
XML 存储 Java
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(一)(上)
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(一)
68 0
|
Ubuntu 定位技术
4 步 解决如何使用tilestache构建瓦片地图服务器
4 步 解决如何使用tilestache构建瓦片地图服务器
635 0