flowable38张表含义说明以及一些操作指南

发布时间:2023年12月28日

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888
?

前言:

? ? 要对flowable的表先有全面的认识,需要我们深入研究flowable的各个表意义。整合网上各个来源,加上自己实践过程中的认识整理出来以下内容。

表名规则:

目前一共38张表

Activiti 使用到的表都是?ACT_?开头的。表名的第二部分用两个字母表明表的用途。

  • ACT_GE_ (GE) 表示 general 全局通用数据及设置,各种情况都使用的数据。
  • ACT_HI_ (HI) 表示 history 历史数据表,包含着程执行的历史相关数据,如结束的流程实例,变量,任务,等等
  • ACT_ID_ (ID) 表示 identity 组织机构,用户记录,流程中使用到的用户和组。这些表包含标识的信息,如用户,用户组,等等。
  • ACT_RE_ (RE) 表示 repository 存储,包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  • ACT_RU_ (RU) 表示 runtime 运行时,运行时的流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti 只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

? ? ? 注:?要删除流程任务运行实例与历史表,可以删除ACT_HI_和ACT_RU_的表数据。

1、act_evt_log

Flowable引入了事件日志机制。日志机制基于Flowable引擎的事件机制,并默认禁用。总的来说,来源于引擎的事件会被捕获,并创建一个包含了所有事件数据(甚至更多)的map,提供给org.flowable.engine.impl.event.logger.EventFlusher,由它将这些数据保存其他地方。默认情况下,使用简单的基于数据库的事件处理器/保存器,用Jackson将上述map序列化为JSON,并将其作为EventLogEntryEntity实例存入数据库。默认会在数据库中创建ACT_EVT_LOG表保存事件日志。如果不使用事件日志,可以删除这个表。

2、act_ge_bytearray

每个流程的部署记录,bytes_字段中存储流程的具体内容。每次启动时都会默认部署process目录下的流程文件,执行

repositoryService.createDeployment().deploy方法也会部署流程。

? ?? ?注:流程定义除了上面这个表,还与下面三个表act_re_deployment,act_re_model,act_re_procdef,act_ge_property相关,要清除相关内容,首先需要进行act_ru相关表删除,才能删除这些表内容。

3、act_ge_property

flowable自身的一些变量,主要是版本号。

4、act_hi_actinst

历史执行的所有流程节点的内容。

5、act_hi_attachment

流程历史附件表。

附件自身主要是带上了url。

可以对任务添加附件。

6、act_hi_comment

流程的历史评论表

评论嘛,就带了个string的fullMessage

7、act_hi_detail

流程中历史产生的变量详情。

(在流程中指定变量,流程流转时传入变量,作业务处理,比如判断审核通过还是拒绝)

8、act_hi_entitylink

历史参与的人员表

内部是维护一个scopeId及其关联的scopeId。

每一个task任务属于一个scopeId(需要再研究一下)

9、act_hi_identitylink

记录每一个历史节点的用户(可能是group可能是user)。

10、act_hi_procinst

每一个历史流程,创建时就生成,一条流程实(process)例对应一个记录。

11、act_hi_taskinst

记录每一个历史节点,一个task对应一个记录。

12、act_hi_tsk_log

每一次执行(execution)可能会带上数据,存在这里(data),没有生成过。

HistoricTaskLogEntry类

13、act_hi_varinst

维护所有的历史变量

14、act_id_bytearray

用户组的部署内容

15、act_id_group

所有用户组的信息

16、act_id_info

所有用户的信息,账号密码

17、act_id_membership

用户和用户组的关系

18、act_id_priv

权限表

19、act_id_priv_mapping

用户权限关系表

20、act_id_property

用户的变量,存了版本号。

21、act_id_token

用户访问记录

22、act_id_user

用户基本信息,包括邮箱等

以上几张用户表是对flowable idm的用户管理体系,可以配置用户对api的调用权限。

23、act_procdef_info

流程定义信息,对流程的说明

24、act_re_deployment

流程部署记录,每次服务重启会部署一次,这边新增一条记录。

25、act_re_model

创建模型时,额外定义的一些模型相关信息,存在这张表,默认不存。

26、act_re_procdef

记录流程的变更,流程每变更一次存一条,version_加1

27、act_ru_actinst

act_ru_actinst相比于act_ru_taskinst数据更全一些,为记录工作流中的所有活动(包括开始、任务、结束等)。

28、act_ru_deadletter_job

?作业死信表-作业失败超过重试次数,正常情况下,不会有数据

29、act_ru_entitylink

此表存储有关实例的父子关系的信息。例如,如果流程实例启动子案例实例,则此关系存储在此表中。这样可以轻松查询关系

30、act_ru_event_subscr

运行时事件 throwEvent、catchEvent 时间监听信息表(目前我们这边都没用到过哈。。)

31、act_ru_execution

执行实例表:这个表和act_ru_task表,一起控制了用户任务的产生与完成等。

32、act_ru_external_job

Flowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据

?33、act_ru_history_job

当前流程所有历史执行的任务

但是因为如果流程结束,就查不到这些任务

所以虽然是历史,但是也命名成了act_ru。

What act_ru_history_job is used for? - Flowable Engine - Flowable

34、act_ru_identitylink

此表存储有关用户或组的数据及其与(流程/案例/等)实例相关的角色。该表也被其他需要身份链接的引擎使用。

35、act_ru_job

运行时定时任务数据表,没有定时任务这个也是空的

36、act_ru_suspended_job

运行时作业暂停表,通常也为空

37、act_ru_task

?运行时任务节点表,此表包含正在运行的实例的每个未完成用户任务的条目。然后在查询用户的任务列表时使用此表。

38、act_ru_timer_job

  • ServiceTask异步任务会产生异步任务,存放在一般工作表act_ru_job中。
  • 定时任务会产生定时的任务,在定时时间未到达之前会存放在定时工作表act_ru_timer_job中。
  • 挂起任务,比如将未到时间的定时任务手动暂停,则会存放在挂起任务表act_ru_suspended_job中。
  • 不可执行任务,如果任务执行失败,并且在重试次数用完的情况下也没有成功执行,则任务会存放到不可执行任务表act_ru_deadletter_job中。
  • **后会把数据再放回act_ru_timer_job表中。

39、act_ru_variable

同上act_hi对应表,此表存储与实例相关的变量。。

总结:

通过整理表,发现flowable还:

对task提供了很多配置,包括添加附件、评论,以及设置tenant多租户区分权限;

对自动任务作了完善的机制(包括多次失败、重新**等类型任务的记录维护);

同时也维护了一套用户管理权限,可以基于它实现一套工作流构建的服务。

参考:

https://blog.csdn.net/qq_37701372/article/details/109635128

文章来源:https://blog.csdn.net/qq_40032778/article/details/132381825
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。