基于上一篇的demo做了测试
初始化引擎
会创建25张表
其中ACT_GE_PROPERTY默认会有3条数据
系统相关属性表
是
09:44:59,105 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession - SQL: insert into ACT_GE_PROPERTY
values ('schema.version', '5.22.0.0', 1)
09:44:59,109 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession - SQL: insert into ACT_GE_PROPERTY
values ('schema.history', 'create(5.22.0.0)', 1)
09:44:59,109 [main] DEBUG org.activiti.engine.impl.db.DbSqlSession - SQL: insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1)
NAME_ VALUE_ REV_
next.dbid 1 1
schema.history create(5.22.0.0) 1
schema.version 5.22.0.0 1
这个next.dbid
的VALUE_每次部署新流程的时候会变化,默认递增2500
REV_
默认递增为1
部署流程
需要操作4张表
ACT_GE_PROPERTY
系统相关属性表
NAME_ VALUE_ REV_
next.dbid 2501 2
解析xml或者bpmn文件
ACT_RE_PROCDEF
已部署的流程定义表
INSERT INTO `activiti`.`act_re_procdef`(`ID_`, `REV_`, `CATEGORY_`, `NAME_`, `KEY_`, `VERSION_`, `DEPLOYMENT_ID_`, `RESOURCE_NAME_`, `DGRM_RESOURCE_NAME_`, `DESCRIPTION_`, `HAS_START_FORM_KEY_`, `HAS_GRAPHICAL_NOTATION_`, `SUSPENSION_STATE_`, `TENANT_ID_`) VALUES ('onboarding:1:4', 1, 'http://www.activiti.org/processdef', 'Onboarding', 'onboarding', 1, '1', 'onboarding.bpmn20.xml', 'onboarding.onboarding.png', NULL, 0, 1, 1, '');
重点的几个字段:
ID onboarding:1:4
key onboarding
version 1
key相同的认为是一样的流程,使用不同的ID和version区分,默认启动流程的时候会使用最新版本
ACT_GE_BYTEARRAY
通用的流程定义和流程资源表
ID_ REV_ NAME_ DEPLOYMENT_ID_ BYTES_ GENERATED_
2 1 onboarding.bpmn20.xml 1 (BLOB) 6.67 KB 0
3 1 onboarding.onboarding.png 1 (BLOB) 9.54 KB 1
资源文件的路径,DEPLOYMENT_ID_和ACT_RE_PROCDEF关联
ACT_RE_DEPLOYMENT
部署单元信息表
用来存储部署时需要持久化保存下来的信息
INSERT INTO `activiti`.`act_re_deployment`(`ID_`, `NAME_`, `CATEGORY_`, `TENANT_ID_`, `DEPLOY_TIME_`) VALUES ('1', NULL, NULL, '', '2018-05-07 01:46:41.780');
这里的ID就是ACT_RE_PROCDEF的DEPLOYMENT_ID_
启动流程
涉及9张表,5张历史表,4张执行表
ACT_HI_VARINST
历史的流程运行中的变量信息
启动的时候会有一个initiator
通过EXECUTION_ID_
绑定
INSERT INTO `activiti`.`act_hi_varinst`(`ID_`, `PROC_INST_ID_`, `EXECUTION_ID_`, `TASK_ID_`, `NAME_`, `VAR_TYPE_`, `REV_`, `BYTEARRAY_ID_`, `DOUBLE_`, `LONG_`, `TEXT_`, `TEXT2_`, `CREATE_TIME_`, `LAST_UPDATED_TIME_`) VALUES ('6', '5', '5', NULL, 'initiator', 'null', 0, NULL, NULL, NULL, NULL, NULL, '2018-05-07 01:55:17.056', '2018-05-07 01:55:17.056');
ACT_HI_TASKINST
历史的任务实例
INSERT INTO `activiti`.`act_hi_taskinst`(`ID_`, `PROC_DEF_ID_`, `TASK_DEF_KEY_`, `PROC_INST_ID_`, `EXECUTION_ID_`, `NAME_`, `PARENT_TASK_ID_`, `DESCRIPTION_`, `OWNER_`, `ASSIGNEE_`, `START_TIME_`, `CLAIM_TIME_`, `END_TIME_`, `DURATION_`, `DELETE_REASON_`, `PRIORITY_`, `DUE_DATE_`, `FORM_KEY_`, `CATEGORY_`, `TENANT_ID_`) VALUES ('9', 'onboarding:1:4', 'enterOnboardingData', '5', '5', 'Enter Data', NULL, NULL, NULL, NULL, '2018-05-07 01:55:17.181', NULL, NULL, NULL, NULL, 50, NULL, NULL, NULL, '');
ACT_HI_PROCINST
(历史流程实例信息)核心表
有启动和结束时间
刚启动的时候只有启动时间和启动节点
INSERT INTO `activiti`.`act_hi_procinst`(`ID_`, `PROC_INST_ID_`, `BUSINESS_KEY_`, `PROC_DEF_ID_`, `START_TIME_`, `END_TIME_`, `DURATION_`, `START_USER_ID_`, `START_ACT_ID_`, `END_ACT_ID_`, `SUPER_PROCESS_INSTANCE_ID_`, `DELETE_REASON_`, `TENANT_ID_`, `NAME_`) VALUES ('5', '5', NULL, 'onboarding:1:4', '2018-05-07 01:55:17.062', NULL, NULL, NULL, 'startOnboarding', NULL, NULL, NULL, '', NULL);
ACT_HI_ACTINST
历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容。
就是一个流程整个过程的所有节点都会记录
初始化的时候有startOnboarding和enterOnboardingData
INSERT INTO `activiti`.`act_hi_actinst`(`ID_`, `PROC_DEF_ID_`, `PROC_INST_ID_`, `EXECUTION_ID_`, `ACT_ID_`, `TASK_ID_`, `CALL_PROC_INST_ID_`, `ACT_NAME_`, `ACT_TYPE_`, `ASSIGNEE_`, `START_TIME_`, `END_TIME_`, `DURATION_`, `TENANT_ID_`) VALUES ('7', 'onboarding:1:4', '5', '5', 'startOnboarding', NULL, NULL, 'Start', 'startEvent', NULL, '2018-05-07 01:55:17.063', '2018-05-07 01:55:17.156', 93, '');
INSERT INTO `activiti`.`act_hi_actinst`(`ID_`, `PROC_DEF_ID_`, `PROC_INST_ID_`, `EXECUTION_ID_`, `ACT_ID_`, `TASK_ID_`, `CALL_PROC_INST_ID_`, `ACT_NAME_`, `ACT_TYPE_`, `ASSIGNEE_`, `START_TIME_`, `END_TIME_`, `DURATION_`, `TENANT_ID_`) VALUES ('8', 'onboarding:1:4', '5', '5', 'enterOnboardingData', '9', NULL, 'Enter Data', 'userTask', NULL, '2018-05-07 01:55:17.159', NULL, NULL, '');
ACT_HI_IDENTITYLINK
任务参与者数据表。主要存储历史节点参与者的信息。
enterOnboardingData的参与者就是managers
INSERT INTO `activiti`.`act_hi_identitylink`(`ID_`, `GROUP_ID_`, `TYPE_`, `USER_ID_`, `TASK_ID_`, `PROC_INST_ID_`) VALUES ('10', 'managers', 'candidate', NULL, '9', NULL);
ACT_RU_EXECUTION
核心,我的代办任务查询表
现在待办就是enterOnboardingData
这个ID_
就是后面的EXECUTION_ID_
INSERT INTO `activiti`.`act_ru_execution`(`ID_`, `REV_`, `PROC_INST_ID_`, `BUSINESS_KEY_`, `PARENT_ID_`, `PROC_DEF_ID_`, `SUPER_EXEC_`, `ACT_ID_`, `IS_ACTIVE_`, `IS_CONCURRENT_`, `IS_SCOPE_`, `IS_EVENT_SCOPE_`, `SUSPENSION_STATE_`, `CACHED_ENT_STATE_`, `TENANT_ID_`, `NAME_`, `LOCK_TIME_`) VALUES ('5', 1, '5', NULL, NULL, 'onboarding:1:4', NULL, 'enterOnboardingData', 1, 0, 1, 0, 1, 2, '', NULL, NULL);
ACT_RU_TASK
运行时任务数据表
(执行中实时任务)代办任务查询表
这个ID_
就是后面的TASK_ID_
INSERT INTO `activiti`.`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_`) VALUES ('9', 1, '5', '5', 'onboarding:1:4', 'Enter Data', NULL, NULL, 'enterOnboardingData', NULL, NULL, NULL, 50, '2018-05-07 01:55:17.161', NULL, NULL, 1, '', NULL);
ACT_RU_IDENTITYLINK
主要存储当前节点参与者的信息,任务参与者数据表
TASK_ID_
就是ACT_RU_TASK的ID_
INSERT INTO `activiti`.`act_ru_identitylink`(`ID_`, `REV_`, `GROUP_ID_`, `TYPE_`, `USER_ID_`, `TASK_ID_`, `PROC_INST_ID_`, `PROC_DEF_ID_`) VALUES ('10', 1, 'managers', 'candidate', NULL, '9', NULL, NULL);
<