Activiti 开发案例之数据库表 ACT_HI_IDENTITYLINK

  • 2019 年 12 月 5 日
  • 筆記

前言

用工作流API用的贼溜,那么问题来了,指派的任务和人都去哪了?

表结构

如果大家开发中用到了以下两个API会涉及到:

  • taskService.addCandidateUser(taskId,userId)
  • taskService.addCandidateGroup(taskId,groupId)

ACT_HI_IDENTITYLINK:任务参与者历史数据表,主要存储历史节点参与者的信息。

1. ID_:  2. GROUP_ID_: 对应 act_id_group 中的ID_  4. TYPE_:类型  5. USER_ID_:对应 act_id_user 中的ID_  6. TASK_ID_:对应 act_ru_task 中的ID_  7. PROC_INST_ID_: 流程实例ID

ACT_RU_IDENTITYLINK:任务参与者数据表,主要存储当前节点参与者的信息。

1. ID_:  2. REV_:版本号  3. GROUP_ID_: 对应 act_id_group 中的ID_  4. TYPE_:类型  5. USER_ID_:对应 act_id_user 中的ID_  6. TASK_ID_:对应 act_ru_task 中的ID_  7. PROC_INST_ID_: 流程实例ID  8. PROC_DEF_ID_:部署流程版本号

ACT_HI_IDENTITYLINKACT_RU_IDENTITYLINK 两个表的数据字段看似差不多,其实还是有很大不同的。

  • ACT_HI_IDENTITYLINK,所有的历史以及当前指派数据都存在这个表中。
  • ACT_RU_IDENTITYLINK,流程结束以后,此流程对应的指派数据将清空。
  • ACT_RU_IDENTITYLINK,多了两个字段 REV_:版本号,PROC_DEF_ID_:部署流程版本号,因为在运行过程中,任务需要知道发起是使用的是那一个流程版本。
  • ACT_HI_IDENTITYLINK,中没有以上两个字段,是因为已经到历史库了,记录也没啥子意义了。
  • ACT_RU_IDENTITYLINK,运行中的任务,TASK_ID_字段不为空,PROC_INST_ID_ 为空。
  • ACT_RU_IDENTITYLINK,结束的任务,TASK_ID_ 字段为空,PROC_INST_ID_ 不为空。

最后,再来看看比较重要的TYPE_字段:

  • starterUSER_IDPROC_INST_ID_,记录流程的发起者
  • candidateUSER_ID_GROUP_ID_ 其中一个必须有值、TASK_ID_有值,记录当前任务的指派人与指派组。
  • participantUSER_IDPROC_INST_ID_有值,记录流程任务的参与者。