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类型数据

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

相关文章
|
数据可视化 前端开发 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(一)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
1110 0
|
5月前
|
NoSQL Java 数据库
SpringBoot实用开发篇第三章(数据层解决方案操作)
SpringBoot实用开发篇第三章(数据层解决方案操作)
|
6月前
|
缓存 Java 开发者
10个点介绍SpringBoot3工作流程与核心组件源码解析
Spring Boot 是Java开发中100%会使用到的框架,开发者不仅要熟练使用,对其中的核心源码也要了解,正所谓知其然知其所以然,V 哥建议小伙伴们在学习的过程中,一定要去研读一下源码,这有助于你在开发中游刃有余。欢迎一起交流学习心得,一起成长。
|
XML Java 数据库
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(一)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
311 0
|
数据处理 数据安全/隐私保护
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(二)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
452 0
|
数据可视化 安全 前端开发
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(三)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
391 0
|
XML 数据可视化 Java
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)(二)
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解)
484 0
|
XML 前端开发 Java
说一下springBoot的起步环境--包含论文必备的完整流程图
说一下springBoot的起步环境--包含论文必备的完整流程图
|
存储 安全 算法
区块链游戏DAO模式开发步骤详情 |(源码demo实例分析)
区块链游戏的 DAO 模式开发是指利用 DAO 模式进行游戏开发和管理,其中 DAO 代表着“抵抗者”的意思。这种开发模式颠覆了传统游戏开发中的中心化管理方式,通过去除中介和减少不必要的成本来降低游戏开发的成本。
|
算法 测试技术 iOS开发
【第三篇】XiaoZaiMultiAutoAiDevices之运行流程
本框架大部分代码都是有详细的注释,配合此教程系列,把流程梳理通应该是没有什么问题。
113 0
【第三篇】XiaoZaiMultiAutoAiDevices之运行流程
下一篇
无影云桌面