1. Activiti 数据库表名说明(分类与说明)
https://www.activiti.org/userguide/#database.tables.explained
\qquad Activiti 的数据库表名称都以 ACT_ 开头,而第二部分是表 use case 的双字符标识,use case 也大致与 Activiti 服务 API 匹配。
- ACT_RE_*:
- RE stands for repository. Tables with this prefix contain static information such as process definitions and process resources (images, rules, etc.).
- RE 代表 repository,包含这个前缀的表包含诸如 流程定义 和 流程资源(图片、规则等) 这类的静态信息
- ACT_RU_*:
- RU stands for runtime. These are the runtime tables that contain the runtime data of process instances, user tasks, variables, jobs, etc. Activiti only stores the runtime data during process instance execution, and removes the records when a process instance ends. This keeps the runtime tables small and fast.
- RU 代表 runtime,这些 (ACT_RU_*) 是包含流程实例运行时数据的表,如 用户任务 (user tasks)、流程变量 (variables)、作业(jobs) 等;Activiti 仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录,这可以保持符合 act_ru_* 的表小而快。
- ACT_ID_*:
- ID stands for identity. These tables contain identity information, such as users, groups, etc.
- ID 代表 identity,这些表包含身份信息,比如 用户、组等。
- ACT_HI_*:
- HI stands for history. These are the tables that contain historic data, such as past process instances, variables, tasks, etc.
- HI 代码 history,这些是包含历史数据的表,比如 过去的流程实例、变量、任务等。
- ACT_GE_*:
- general data, which is used in various use cases.
- (GE 代表 general,符合 ACT_GE_* 的表存储的是) 在各种各样的 use case 都被使用的通用数据。
1. ACT_RE_*:repository
2.1 act_re_deployment
- 表说明:用于存储流程部署信息的表,与 act_ge_bytearray join 可以查看流程文件信息
- 表列说明
- ID_:部署的唯一标识符,用于标识流程部署的唯一性
- NAME_:部署名称,用于标识流程部署的名称
- CATEGORY_:部署类别,用于对流程进行分类
- TENANT_ID_:租户标识符,如果启用了多租户功能,可以标识流程部署所属的租户
- KEY_:部署的键
- DEPLOY_TIME_:部署时间,表示流程部署发生的时间
- ENGINE_VERSION_
repositoryService.createDeployment().category(category).key(key).name(name)
2.2 act_re_model
- 表说明:用于存储流程模型信息的表
- 表列说明
- ID_:流程模型的唯一标识符
- NAME_:流程模型的名称
- KEY_:流程模型的键(也称为流程模型的 ID)
- CATEGORY_:流程模型的分类,可用于对流程模型进行分组
- CREATE_TIME_:创建流程模型的时间戳
- LAST_UPDATE_TIME_:最后更新流程模型的时间戳。
- VERSION_:流程模型的版本
- META_INFO_:流程模型的元信息,通常以 JSON 格式存储
- DEPLOYMENT_ID_:引用所属流程部署的唯一标识符
- EDITOR_SOURCE_VALUE_ID_
- EDITOR_SOURCE_EXTRA_VALUE_ID_
- TENANT_ID_
2.3 act_re_procdef
- 表说明:用于存储流程定义的信息
- 表列说明
- ID_:流程定义表主键
- CATEGORY_: 流程定义的分类,可用于对流程进行分组
- NAME_:流程定义的名称
- KEY_:流程定义的键(也称为流程定义的 ID)
- VERSION_:流程定义的版本
- DEPLOYMENT_ID_:引用所属流程部署的唯一标识符
- RESOURCE_NAME_:流程定义的资源名称,通常是 BPMN 或 XML 文件名
- DGRM_RESOURCE_NAME_:流程定义的图形资源名称,通常是流程定义的图形表示的文件名
- DISCRIPTION_:流程定义描述
- HAS_START_FORM_KEY_: 表示流程定义是否有启动表单
- HAS_GRAPHICAL_NOTATION_: 表示流程定义是否有图形表示
- SUSPENSION_STATE_: 流程定义的挂起状态
- TENANT_ID_
- ENGLISH_VERSION_
2. ACT_RU_*:runtime
流程引擎中的三个关键概念 (excution\task\job) 解析:
- Execution (执行):Execution 是 Activiti 中流程实例的表示,Execution 是流程实例的运行时状态,代表了流程的执行轨迹。
- 当一个流程实例启动时,会创建一个 Execution。
- Execution 代表了流程实例在运行时的状态,包括当前所在的流程节点、变量值、执行状态等。每个执行实例都有一个唯一的 ID。
- Task (任务):Task 是流程执行过程中需要参与者执行的工作单元,与 Execution 相关联。
- 它通常与执行相关联,表示执行所在的节点需要执行的任务。
- 当流程实例执行到一个用户任务节点时,会创建一个 Task,并将其分配给相应的参与者。
- Task 包含了任务的相关信息,如任务名称、任务分配人、任务处理人、任务状态等。
- Job (作业):Job 是 Activiti 中用于处理定时任务和异步任务的机制,它们可能与 Execution、Task 相关联
- 当某个节点需要以异步方式执行或需要定时触发时,会创建一个 Job。
- Job 表示待执行的任务,可以包括脚本执行、消息发送、定时触发等。
- Job 包含了定时任务或异步任务的相关信息,如触发时间、重试次数、业务数据等。
\qquad 在流程执行过程中,Execution 会依次经过不同的节点,每个节点对应一个 Task。当任务需要定时触发或以异步方式执行时,可能会创建一个 Job 来处理。
2.1 act_ru_excution**
- 表说明:用于存储流程实例的执行信息的表
- 表列说明:
- ID_:执行 ID,某流程实例的第一个执行 ID 与 procInstId 一致
- REV_
- PROC_INST_ID_:流程实例的唯一标识符(关联)
- BUSINESS_KEY_:与流程实例关联的业务键
- PARENT_ID_:父执行的唯一标识符 (对于子流程、多实例等场景,可以通过父执行与上层流程实例关联)
- PROC_DEF_ID:流程定义 ID
- SUPER_EXEC_:父执行的超级执行的唯一标识符 (超级执行是一个用于表示多实例、并行网关等高级流程结构的特殊执行)
- ROOT_PROC_INST_ID_:根流程实例的唯一标识符
- ACT_ID_:当前执行所在的流程节点的唯一标识符
- IS_ACTIVE_:表示当前执行是否处于活动状态
- IS_CONCURRENT_:表示当前执行是否是并发执行
- IS_SCOPE_:表示当前执行是否是一个作用域执行 (作用域执行是一个可以独立执行、包含局部变量、持有活动实例状态的执行实例)
- IS_EVENT_SCOPE_:表示当前执行是否是一个事件作用域执行
- IS_MI_ROOT
- SUSPENSION_STATE_:流程实例的挂起状态,用于标识流程实例是否被挂起,挂起时不允许进行流程推进操作
- CACHED_ENT_STATE_
- TENANT_ID_
- NAME_
- START_TIME_
- START_USER_ID_
- LOCK_TIME_
- IS_COUNT_ENABLED_
- EVT_SUBSCR_COUNT_
- TASK_COUNT_
- JOB_COUNT_
- TIMER_JOB_COUNT_
- SUSP_JOB_COUNT_
- DEADLETTER_JOB_COUNT_
- VAR_COUNT_
- ID_LINK_COUNT_
2.2 act_ru_task**
- 表说明:用于存储运行时任务信息的表
- 表列说明:
- ID_:任务的唯一标识符
- REV_:数据库乐观锁的版本号
- EXECUTION_ID_:与任务关联的流程实例的执行标识符
- PROC_INST_ID_:与任务关联的流程实例的唯一标识符
- PROC_DEF_ID_:与任务关联的流程定义的唯一标识符
- NAME_:任务的名称
- PARENT_TASK_ID_:父任务的唯一标识符
- DESCRIPTION_:任务的描述
- TASK_DEF_KEY_:任务的定义键值
- OWNER_:任务的所有者
- ASSIGNEE_:任务的受派人
- DELEGATION_:委派人的标识符
- PRIORITY_:任务的优先级
- CREATE_TIME_:任务的创建时间
- DUE_DATE_:任务的到期时间
- CATEGORY_:任务的分类
- SUSPENSION_STATE_:任务的挂起状态
- TENANT_ID_
- FORM_KEY_
- CLAIM_TIME_
2.3 act_ru_variable**
2.4 act_ru_identitylink
2.5 act_ru_job**
2.6 act_ru_deadletter_job
2.7 act_ru_suspended_job
2.8 act_ru_timer_job
2.9 act_ru_event_subscr
act_evt_log
3. ACT_ID_*:identity
4. ACT_HI_*:history
5. ACT_GE_*:general
5.1 act_ge_bytearray
- 表说明:用于存储流程文件 (xxx.bpmn20.xml\xxx.process_id.png) 的二进制数据 (由 BYTES 列存储) 的表
- 表列说明
- NAME_ :流程文件路径
- DEPLOYMENT_ID_ :流程文件部署 ID
- BYTES_ :流程文件二进制数据
- GENERATED_:表示是(0)否(1)是生成标识 (如果部署时仅指明了像 xxx.bpmn20.xml 一样的流程 xml 文件,那么 .png 也会存储且 GENERATED_ 列的值为 1)
5.2 act_ge_property
- 表说明:用于存储一些全局属性和配置信息的表,其存储的数据根据具体的应用和配置而定
- 表列说明
- NAME_:属性的名称,用于标识属性的唯一性
- VALUE_:属性的取值,存储属性的具体数值或配置
- REV_:属性的版本号,每次属性值发生变化时都会增加版本号
6. ACT_EVT_LOG:act_evt_log
- 表说明:记录事件日志信息的表
- 关于事件日志可以查看:https://www.activiti.org/userguide/#advanced.event.logging
- 表列说明
- LOG_NR_:事件日志序号,用于标识日志的唯一性
- TYPE_:事件类型,表示事件的种类,如任务创建、流程实例启动、节点完成等
- PROC_DEF_ID_:流程定义 ID,标识与事件相关的流程定义
- PROC_INST_ID_:流程实例 ID,标识与事件相关的流程实例
- EXECUTION_ID_:执行 ID,标识与事件相关的 execution
- TASK_ID_:任务 ID,标识与事件相关的任务
- TIME_STAMP_:事件发生的时间戳
- USER_ID_:相关用户的 ID,表示执行事件的用户
- …