Activiti的核心表
这里我们只关注最重要的几张表
流程相关:
- act_re_procdef : process definition, 流程定义表,所有生效的流程都会在这个表中记录。用
version_
字段区分同一个流程不同的版本。 - act_re_deployment: 流程部署记录表,用
id_
和deploy_time_
两个字段可以确认自己的流程有没有被正确的部署。之前我遇到过代码测试一直不符合预期,结果发现是流程xml文件解析失败。通过这个表可以再校验下新的流程是否部署成功了。
流程运行相关 runtime table
- act_ru_task
- act_ru_job
- act_ru_execution
要理解上边runtime表,需要理解execution
, task
, job
的关系和区别。
参考作者的解释,翻译下就是
- 一个流程实例(
process instance
),可以包含1个或多个execution
。我理解如果一个流程中有分叉、并行的子流程执行,这一个流程的"分叉"就是一个execution
。 - task: 系统/用户需要做的"逻辑节点",有
UserTask
,ServiceTask
,MailTask
等等 - job, 作者说job = a timer or an async continutation of a process, Timer比较好理解,这个async continuation of a process是啥呢? 看代码的注释,
interface represents on job (timer, message, etc)
. 看实现Job接口的有JobEntity, TimerEntity, MessageEntity, 可以理解Job就是倒计时节点、消息(比如流程执行过程中抛出异常了,就会在act_ru_job中记录一个job).
更详细的表结构说明可以参考