




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安创富电子科技有限公司 Activiti数据表结构和核心对象关系Activiti数据表结构和核心对象关系西安创富电子科技有限公司二一三年九月版本历史日期版本说明(文档修改描述)作者审核人2013.9文档初稿焦剑波目录1ACTIVITI数据库表结构41.1数据库表名说明41.2数据库表结构42ACTIVITI中主要对象的关系161 Activiti数据库表结构1.1 数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。u ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;u ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。当系统中配置history的信息记录级别为“none”时,这一类表也可以不用;u ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;u ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些 静态信息,如流程定义和流程资源(如图片、规则等);u ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;1.2 数据库表结构Activiti数据表清单:表名解释ACT_GE_BYTEARRAY通用的流程定义和流程资源ACT_GE_PROPERTY系统相关属性ACT_HI_ACTINST历史的流程实例ACT_HI_ATTACHMENT历史的流程附件ACT_HI_COMMENT历史的说明性信息ACT_HI_DETAIL历史的流程运行中的细节信息ACT_HI_IDENTITYLINK历史的流程运行过程中用户关系ACT_HI_PROCINST历史的流程实例ACT_HI_TASKINST历史的任务实例ACT_HI_VARINST历史的流程运行中的变量信息ACT_ID_GROUP身份信息-组信息ACT_ID_INFO身份信息-组信息ACT_ID_MEMBERSHIP身份信息-用户和组关系的中间表ACT_ID_USER身份信息-用户信息ACT_RE_DEPLOYMENT部署单元信息ACT_RE_MODEL模型信息ACT_RE_PROCDEF已部署的流程定义ACT_RU_EVENT_SUBSCR运行时事件ACT_RU_EXECUTION运行时流程执行实例ACT_RU_IDENTITYLINK运行时用户关系信息ACT_RU_JOB运行时作业ACT_RU_TASK运行时任务ACT_RU_VARIABLE运行时变量表2 Activiti中主要对象的关系本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的。在开始之前先看看下图,对整个对象结构有个了解,再结合实例详细介绍理解。图1. Activiti中几个对象之间的关系我们模拟一个请假的流程进行分析介绍,该流程主要包含以下几个步骤:u 员工申请请假u 部门领导审批u 人事审批u 员工销假ProcessInstance对象员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。启动完流程之后业务和流程已经建立了关联关系,第一步结束。启动流程和业务关联区别:u 对于自定义表单来说启动的时候会传入businessKey作为业务和流程的关联属性u 对于动态表单来说不需要使用businessKey关联,因为所有的数据都保存在引擎的表中u 对于外部表单来说businessKey是可选的,但是一般不会为空,和自定义表单类似Execution对象对于初学者来说,最难理解的地方就是ProcessInstance与Execution之间的关系,要分两种情况说明。Execution的含义就是一个流程实例(ProcessInstance)具体要执行的过程对象。不过在说明之前先声明两者的对象映射关系:ProcessInstance(1) Execution(N),(其中N = 1)。1) 值相等的情况:除了在流程中启动的子流程之外,流程启动之后在表ACT_RU_EXECUTION中的字段ID_和PROC_INST_ID_字段值是相同的。图2. ID_和PROC_INST_ID_相等2) 值不相等的情况:不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。图3. ID_和PROC_INST_ID_不相等上图中有两条数据,第二条数据(嵌入的子流程)的PARENT_ID_等于第一条数据的ID_和PROC_INST_ID_,并且两条数据的PROC_INST_ID_相同。上图中还有一点特殊的地方,字段IS_ACTIVE_的值分别是0和1,说明正在执行子流程主流程挂起。Task对象前面说了ProcessInstance和业务是一对一关联的,和业务数据最亲密;而Task则和用户最亲密的(UserTask),用户每天的待办事项就是一个个的Task对象。从图1中看得出Execution和Task是一对一关系,Task可以是任何类型的Task实现,可以是用户任务(UserTask)、Java服务(Java ServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。图4. 表ACT_RU_TASKTask是在流程定义中看到的最大单位,每当一个Task完成的时候会引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。HistoryActivity(历史活动)图5. 表ACT_HI_ACTINSTActivity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿化补植协议5篇
- 专业版监理聘用的合同5篇
- 2025年互联网行业数字化经济与网络安全研究报告
- 2025年人才培训服务行业在线教育与职业发展研究报告
- 2025年人工智能行业人工智能应用场景探索研究报告
- 2025会计萌新面试题目及答案
- 2025年大健康产业行业健康管理与预防医学研究报告
- 2025年快递行业最后一公里配送技术应用研究报告
- 2025年人工智能在教育领域的应用前景研究报告
- 2025中国航天汽车有限责任公司公开招聘9人笔试题库历年考点版附带答案详解
- 供应链管理综合实验实验报告
- (正式版)JBT 5300-2024 工业用阀门材料 选用指南
- 2024量子人工智能技术白皮书-量子信息网络产业联盟-2024.1
- 公务员考试培训-判断推理通关秘籍
- 第13课《警惕可怕的狂犬病》 课件
- 《C++语言基础》全套课件(完整版)
- 《社会工作伦理案例分析》课件 儿童和青少年社会工作伦理
- HSK标准教程5下-课件-L2
- 艺人明星形象代言肖像权使用合同模板
- 毕业设计论文-计算机类
- 工作单位接收函
评论
0/150
提交评论