Flowable(二):数据库详情

scx123

Flowable(二):数据库详情

红色文字描述代表当前描述未确认

橘色文字描述代表当前描述存在争议

绿色文字描述代表当前描述已考证

一、数据驱动详情

(1)数据库软件类型

内置对H2Base、MySQL的良好支持。

(2)数据驱动模式

对于Flowable来说,其本身是采用Liquibase 来管理数据库模式

二、数据表详情

(1)数据表分类标准

Flowable数据表定义趋于常规。按照OMG国际惯例制定的流程XML标准内容进行分类,Flowable数据表分为三类:

(1)第一类:遵循BPMN协议(或者说遵循BPMN规范)的流程数据表。

(2)第二类:遵循CMMN协议(或者说遵循CMMN规范)的流程数据表。

(3)第三类:遵循DMN协议(或者说遵循DMN规范)的流程数据表。

(2)数据表命名规则

与 Flowable 开源代码库相关的数据库表名以**ACT _**开头。**特定于 Flowable Work 或 Engage 的数据库表以FLW _**前缀开头。

Flowable数据表命名主要分为三大规则,每一个数据表的命名基本可以拆卸为三个部分,每一个部分对应一个规则。

第一部分大多数均以ACT开头,这个缘由可以看小字部分,主要也是为了兼容Activiti的迁移,这也是第一个命名规则。

第二部分是说明表用途的两字符标示符。服务API的命名也大略符合这个规则,这也是第二个命名规则。

第三部分就是根据具体的业务分类,这是第三个命名规则。

所以,综上所述,就能知道,ACT代表的Activiti;FLW顾名思义就是Flowable了,FLW开头的表也有一些,等遇到了再做解释。

Flowable源自于Activiti,所以很多数据表都是一个套路,可以参考Activiti

Flowable 是 Activiti 的一个分支,原来技术成员都是Activiti 归属企业 Alfresco 的成员。

后来大牛跟企业又出现分歧,小暴脾气又独立门户了,就有了Flowable,所以Flowable与Activiti有很多类似的地方。

(3)数据表作用分类

(1)常用模式:待更新

(2)辅助数据表:待更新

(3)通用数据表:原始数据库表(如 BPMN 和 IDM 的表)使用 Flowable 模式和脚本进行版本管理。较新的引擎和表使用 Liquibase 进行表版本控制。有两个与数据库模式管理相关的 Liquibase 表:(简单说的话就是看后缀)

  • <前缀> _ DATABASECHANGELOG:Liquibase 使用此表来跟踪哪些变更集已运行。
  • <前缀> _ DATABASECHANGELOGLOCK:Liquibase 使用此表来确保一次仅运行一个 Liquibase 实例。

注意: 是一个基于 Java 的框架,用于跟踪数据库模式的变化。

(4)数据表介绍

**ACT_APP_ *** 类型表:ACT_APP顾名思义就是activiti的应用的表,这种表(表第二部分不含有CMMN或者是DMN)属于BPMN类型的数据表。

表名作用版本
ACT_APP_APPDEF应用模型定义数据表,应用程序模型产生应用程序定义。此定义,如流程/案例/等。是成功部署到应用引擎的应用模型的表示6.7.2
ACT_APP_DEPLOMENT应用部署表,当通过应用引擎部署应用模型时,会存储一条记录以指示此部署**。部署的实际内容被引用*存储ACT_APP_DEPLOYMENT_RESOURCE表中*。6.7.2
ACT_APP_DEPLOMENT_RESOURCE应用部署资源表,此表包含构成应用程序部署的实际资源(存储为字节)**。**当引擎需要实际模型时,将从该表中获取资源。6.7.2
ACT_APP_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
ACT_APP_DATABASECHANGELOGLiquibase执行的记录6.7.2

**ACT_CMMN_ * ** 类型表:CMMN-表示案例管理模型和符号,与BPMN协议一致,也是一种流程内容的规范。这类表用于存储处理BPMN不所能适用的业务场景数据,通常与BPMN搭配适用,前提是符合CMMN规范的模型的数据才会涉及到适用这类表。ACT_CMMN_RU_ * :RU代表运行时。这些是包含案例实例、计划项等的运行时数据的运行时表。Flowable 仅在案例实例执行期间存储运行时数据,并在案例实例结束时删除记录。这使运行时表保持小且查询速度快。

表名作用版本
ACT_CMMN_CASEDEFCMMN流程用例定义6.7.2
ACT_CMMN_DATABASECHANGELOGLiquibase执行的记录6.7.2
ACT_CMMN_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
ACT_CMMN_DEPLOMENTCMMN流程部署表6.7.2
ACT_CMMN_HI_CASE_INSTCMMN流程历史用例实例表6.7.2
ACT_CMMN_HI_MIL_INST此表包含在案例实例中达到的每个里程碑的条目6.7.2
ACT_CMMN_HI_PLAN_ITEM_INST此表包含作为案例实例执行的一部分创建的每个计划项目实例的条目6.7.2
ACT_CMMN_RU_CASE_INST此表包含每个已启动但尚未完成的案例实例的条目。6.7.2
ACT_CMMN_RU_MIL_INST此表包含作为运行案例实例的一部分达到的每个里程碑的条目。6.7.2
ACT_CMMN_RU_PLAN_ITEM_INST案例实例执行由案例定义中定义的计划项目的多个实例组成。此表包含在案例实例执行期间创建的每个实例的条目。6.7.2
ACT_CMMN_RU_SENTRY_PART_INST计划项目实例可以有守卫状态转换的哨兵。这样的哨兵可以包含在状态改变发生之前需要满足的多个部分。此表存储满足的此类哨兵的任何部分。6.7.2

**ACT_CO_ * ** 类型表:内容引擎数据表。

内容引擎用于存储和查询内容。内容可以是文档、图像等。

表名作用版本
ACT_CO_CONTENT_ITEM每项内容在此表中都有一个条目6.7.2
ACT_CO_DATABASECHANGELOGLiquibase执行的记录6.7.2
ACT_CO_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2

ACT_DMN_ * ** 类型表:Flowable DMN的数据库名称都以ACT_DMN_**开头,DMN决策表。

表名作用版本
ACT_DMN_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
ACT_DMN_DATABASECHANGELOGLiquibase执行的记录6.7.2
ACT_DMN_DECISION此表包含已部署决策表的元数据,并与其他引擎的定义相对应6.7.2
ACT_DMN_DEPLOMENT决策部署表6.7.2
ACT_DMN_DEPLOMENT_RESOURCE决策部署涉及资源表6.7.2
ACT_DMN_HI_DECISION_EXECUTION此表包含有关 DMN 决策表执行的审计信息6.7.2

**ACT_EVT_ * ** 类型表:EVT代表event事件

表名作用版本
ACT_EVT_LOG事件日志表6.7.2

**ACT_FO_ * ** 类型表:FO-表示form(表格表)。

表名作用版本
ACT_FO_DATABASECHANGELOGLiquibase执行的记录6.7.2
ACT_FO_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
ACT_FO_FORM_DEFINITION表格定义表6.7.2
ACT_FO_FORM_DEPLOYMENT表格部署表6.7.2
ACT_FO_FORM_INSTANCE表格实例表6.7.2
ACT_FO_FORM_RESOURCE表格资源表6.7.2

**ACT_GE_ * ** 类型表:GE 代表通用数据,用于各种用例。

表名作用版本
ACT_GE_BYTEARRAY保存和流程引擎相关的资源,只要调用了Activiti存储服务的API,涉及的资源均会被转换为byte数组保存到这个表中,部署几次就会有几条记录6.7.2
ACT_GE_PROPERTY流程全部的属性抽象为key-value对,每个属性都有名称和值。6.7.2

*ACT_HI_ ** 类型表:HI表示history。(10张表)就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。

表名作用版本
ACT_HI_ACTINST流程实例历史6.7.2
ACT_HI_ATTACHMENT实例的历史附件(几乎不会使用,会加大数据库很大的一个loading)6.7.2
ACT_HI_COMMENT实例的历史备注6.7.2
ACT_HI_DETAIL历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。6.7.2
ACT_HI_ENTITYLINK历史流程人员表,任务参与者数据表,主要存储历史节点参与者的信息。6.7.2
ACT_HI_INDENTITYLINK实例节点中,如果指定了目标人,产生的历史6.7.2
ACT_HI_PROCINST流程实例历史6.7.2
ACT_HI_TASKINST流程实例的任务历史。6.7.2
ACT_HI_TSK_LOG来跟踪用户/人工任务发生的更改。(在任务的受让人、所有者或例如到期日期发生变化时创建。默认情况下,用户/人工任务日志记录是禁用的,enableHistoricTaskLogging 属性可以启用)6.7.2
ACT_HI_VARINST流程实例的变量历史。6.7.2

**ACT_ID_ *** 类型表: ID表示identity(组织机构)。(9张表)这些表包含标识的信息,如用户,用户组,等等。

表名作用版本
ACT_ID_BYTEARRAY6.7.2
ACT_ID_GROUP此表包含系统中定义的每个组的条目。6.7.2
ACT_ID_INFO此表存储有关用户的非结构化数据,这些数据未存储在FLW _ ID _ USER表中。6.7.2
ACT_ID_MEMBERSHIP此表映射用户和组之间的关系。也就是说,哪些用户属于哪些组6.7.2
ACT_ID_PRIV权限表6.7.2
ACT_ID_PRIV_MAPPING用户组和权限之间的关系6.7.2
ACT_ID_PROPERTY用户或者用户组属性拓展表6.7.2
ACT_ID_TOKEN当用户成功登录时,令牌将作为会话数据的一部分存储。集群中的每台服务器都可以查询这个数据库表来协调每台服务器上的用户会话。6.7.2
ACT_ID_USER此表包含系统中定义的每个用户的条目。6.7.2

**ACT_RE_ * ** 类型表:RE-表示repository(存储)。这类表是由RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如流程定义,流程的资源

(图片,规则等)。

表名作用版本
ACT_GE_BYTEARRAY保存和流程引擎相关的资源,只要调用了Activiti存储服务的API,涉及的资源均会被转换为byte数组保存到这个表中,部署几次就会有几条记录6.7.2
ACT_GE_PROPERTY流程全部的属性抽象为key-value对,每个属性都有名称和值。6.7.2

**ACT_RU_ * **类型表:RU表示runtime。(15张表)这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

表名作用版本
ACT_RU_ACTINST流程实例中**的每个活动在此表中都有一行来指示活动的当前状态。6.7.2
ACT_RU_DEADLETTER_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_ENTITYLINK此表存储有关实例的父子关系的信息。例如,如果流程实例启动子案例实例,则此关系存储在此表中。这样可以轻松查询关系。6.7.2
ACT_RU_EVENT_SUBSCR当流程定义使用事件(信号/消息/等或启动/中间/边界)时,引擎将对该表的引用存储在此表中。这简化了查询哪些实例正在等待某种类型的事件6.7.2
ACT_RU_EXECUTION存储流程实例和指向流程实例当前状态的指针(称为执行)6.7.2
ACT_RU_EXTERNAL_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_HISTORY_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_IDENTITYLINK此表存储有关用户或组的数据及其与(流程/案例/等)实例相关的角色。该表也被其他需要身份链接的引擎使用。6.7.2
ACT_RU_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_SUSPENDED_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_TASK此表包含一个正在运行的实例的每个未完成用户任务的条目。然后在查询用户的任务列表时使用此表。CMMN 引擎也使用此表6.7.2
ACT_RU_TIMER_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
ACT_RU_VARIABLE此表存储与实例相关的变量。CMMN 引擎也使用此表。6.7.2

*FLW_ ** 类型表:FLW表示flowable

表名作用版本
FLW_CHANNEL_DEFINITION泳池管道定义表6.7.2
FLW_EV_DATABASECHANGELOGLiquibase执行的记录6.7.2
FLW_EV_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
FLW_EVENT_DEFINITION已部署事件定义的元数据6.7.2
FLW_EVENT_DEPLOYMENT已部署事件部署元数据6.7.2
FLW_EVENT_RESOURCE事件所需资源6.7.2
FLW_RU_BATCH迁移业务流程实例并非易事,但Flowable提供了迁移复杂流程的高级功能,也可以在批处理和测试模式下迁移,这张表用于处理批量迁移详情6.7.2
FLW_RU_BATCH_PART批量数据迁移模块6.7.2

未完待续,更多内容:尽在码农修炼笔记

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
flowable是一个开源的工作流引擎,它基于BPMN 2.0标准,并提供了实现业务流程的功能。达梦数据库是一种国产的数据库管理系统。那么如何将flowable适配达梦数据库呢? 首先,通过flowable数据库适配器功能,我们可以将flowable连接到达梦数据库flowable支持自定义数据库配置,可以通过更改配置文件来指定达梦数据库的连接信息,包括数据库类型、地址、用户名和密码等。通过修改相应的配置,我们可以确保flowable能够正确地连接到达梦数据库。 其次,flowable使用了标准的JDBC接口与数据库进行交互。因此,只要达梦数据库提供了JDBC驱动程序,flowable就可以通过该驱动程序与达梦数据库进行通信。可以从达梦官方网站下载并安装达梦数据库的JDBC驱动程序,并将其配置为flowable所需的驱动程序。 最后,我们还需要确保达梦数据库flowable数据库结构兼容。在flowable的环境下,数据库中会创建一系列的表和视图来存储流程定义、流程实例、任务、历史记录等信息。我们需要确保这些表和视图在达梦数据库中正确创建,并具有适当的字段和关系。 总结来说,要使flowable适配达梦数据库,我们需要: 1. 修改flowable数据库配置,以连接到达梦数据库。 2. 安装达梦数据库的JDBC驱动程序,并配置给flowable使用。 3. 确保达梦数据库flowable数据库结构兼容。 通过以上的适配工作,我们可以成功地将flowable与达梦数据库进行整合,实现业务流程的管理和执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fntp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值