Activiti工作流对象关系及表结构
activiti的28张表结构
activiti的28张表结构Activiti是一个基于Java的工作流引擎,用于业务流程管理和自动化。
它提供了一套完整的工作流解决方案,包括流程定义、流程实例、任务和用户等管理功能。
以下是Activiti的28张表结构:1. ACT_GE_BYTEARRAY:保存流程引擎相关的资源,如bpmn、png等文件。
2. ACT_GE_PROPERTY:属性表,保存一些基本属性,为k-v格式。
3. ACT_RE_DEPLOYMENT:保存流程部署相关的信息。
4. ACT_RE_MODEL:保存模型相关的信息。
5. ACT_RE_PROCDEF:保存流程定义的相关信息。
6. ACT_RU_EXECUTION:保存流程实例的相关信息。
7. ACT_RU_JOB:保存定时任务的相关信息。
8. ACT_RU_TASK:保存任务的相关信息。
9. ACT_RU_VARIABLE:保存变量相关的信息。
10. ACT_ID_GROUP:保存用户组的信息。
11. ACT_ID_MEMBERSHIP:保存用户与用户组之间的关系。
12. ACT_ID_USER:保存用户的信息。
13. ACT_HI_ATTACHMENT:保存附件的相关信息。
14. ACT_HI_COMMENT:保存评论的相关信息。
15. ACT_HI_DETAIL:保存详细日志的相关信息。
16. ACT_HI_IDENTITYLINK:保存人员与任务之间的关系。
17. ACT_HI_PROCINST:保存流程实例的相关信息。
18. ACT_HI_TASKINST:保存任务实例的相关信息。
19. ACT_HI_VARINST:保存变量实例的相关信息。
20. ACT_IDX_BYTEARRAY:保存索引字节数组的信息。
21. ACT_IDX_DEPLOYMENT:保存索引部署的信息。
22. ACT_IDX_EXECUTION:保存索引执行的信息。
23. ACT_IDX_PROCDEF:保存索引流程定义的信息。
BPMN工作流的基本概念!详解工作流框架Activiti
BPMN⼯作流的基本概念!详解⼯作流框架Activiti⼯作流⼯作流简介⼯作流(Workflow): ⼯作流就是通过计算机技术对业务流程进⾏⾃动化管理。
实现多个参与者按照预定的流程去⾃动执⾏业务流程。
定义: 通过计算机对业务流程⾃动化执⾏管理主要解决的是: 使在多个参与者之间按照某种预定义的规则⾃动进⾏传递⽂档,信息或任务的过程.从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预⼯作流框架:Activiti,JBPM,OSWorkFlow,WorkFlow⼯作流框架底层需要有数据库提供⽀持⼯作流术语⼯作流引擎ProcessEngine对象: 这是Activiti⼯作的核⼼.负责⽣成流程运⾏时的各种实例及数据,监控和管理流程的运⾏BPM业务流程管理:是⼀种以规范化的构造端到端的卓越业务流程为中⼼,以持续的提⾼组织业务绩效为⽬的的系统化⽅法常见商业管理教育如EMBA,MBA等均将BPM包含在内BPMN业务流程建模与标注:这些图如何组合成⼀个业务流程图(Business Process Diagram)讨论BPMN的各种的⽤途:包括以何种精度来影响⼀个流程图中的模型BPMN作为⼀个标准的价值BPMN未来发展的远景流对象⼀个业务流程图有三个流对象的核⼼元素事件⼀个事件⽤圆圈来描述,表⽰⼀个业务流程期间发⽣的东西事件影响流程的流动.⼀般有⼀个原因(触发器)或⼀个影响(结果)基于它们对流程的影响,有三种事件:开始事件,中间事件,终⽌事件活动⽤圆⾓矩形表⽰,⼀个流程由⼀个活动或多个活动组成条件条件⽤菱形表⽰,⽤于控制序列流的分⽀与合并。
可以作为选择,包括路径的分⽀与合并内部的标记会给出控制流的类型Activiti开源⼯作流框架Activiti简介Activiti是⼀个开源的⼯作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进⾏流程调度Activiti 作为⼀个遵从 Apache 许可的⼯作流和业务流程管理开源平台,其核⼼是基于Java的超快速,超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌⼊性和可扩展性,同时更加强调⾯向业务⼈员Activiti 流程引擎重点关注在系统开发的易⽤性和轻量性上.每⼀项BPM业务功能Activiti流程引擎都以服务的形式提供给开发⼈员.通过使⽤这些服务,开发⼈员能够构建出功能丰富,轻便且⾼效的BPM应⽤程序Activiti服务结构Activiti系统服务结构图核⼼类:ProcessEngine: 流程引擎的抽象,可以通过此类获取需要的所有服务服务类:XxxService: 通过ProcessEngine获取,Activiti将不同⽣命周期的服务封装在不同Service中,包括定义,部署,运⾏.通过服务类可获取相关⽣命周期中的服务信息RepositoryServiceRepository Service提供了对repository的存取服务Activiti中每⼀个不同版本的业务流程的定义都需要使⽤⼀些定义⽂件,部署⽂件和⽀持数据(例如BPMN2.0XML⽂件,表单定义⽂件,流程定义图像⽂件等),这些⽂件都存储在Activiti内建的Repository中RuntimeServiceRuntime Service提供了启动流程,查询流程实例,设置获取流程实例变量等功能.此外它还提供了对流程部署,流程定义和流程实例的存取服务TaskServiceTask Service提供了对⽤户Task和Form相关的操作.它提供了运⾏时任务查询,领取,完成,删除以及变量设置等功能HistoryServiceHistory Service⽤于获取正在运⾏或已经完成的流程实例的信息,与Runtime Service中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化FormService使⽤Form Service可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单Activiti中的流程和状态Task均可以关联业务相关的数据IdentityServiceIdentity Service提供了对Activiti系统中的⽤户和组的管理功能Activiti中内置了⽤户以及组管理的功能,必须使⽤这些⽤户和组的信息才能获取到相应的TaskManagementServiceManagement Service提供了对Activiti流程引擎的管理和维护功能这些功能不在⼯作流驱动的应⽤程序中使⽤,主要⽤于 Activiti 系统的⽇常维护核⼼业务对象:org.activiti.engine.impl.persistence.entity包下的类,包括Task,ProcessInstance,Execution等根据不同职责实现相应接⼝的⽅法(如需要持久化则继承PersistentObject接⼝),与传统的实体类不同Activiti组件Activiti上下⽂组件Context: ⽤来保存⽣命周期⽐较长,全局性的信息,类似Application.主要包括如下三类:CommandContext: 命令上下⽂-保存每个命令必要的资源,如持久化需要的sessionProcessEngineConfigurationImpl: 流程引擎相关配置信息-整个引擎全局的配置信息.如数据源DataSource等.该对象为单例,在流程引擎创建的时候初始化ExecutionContext: 持有ExecutionEntity对象持久化组件:Activiti使⽤mybatis作OR映射,并在此基础上增加设计了⾃⼰的持久化框架在流程引擎创建时初始化,顶层接⼝Session,SessionFactorySession有两个实现类:DbSqlSession: 负责sql表达式的执⾏AbstractManager: 负责对象的持久化操作SessionFactory有两个实现类:DbSqlSessionFactory: 负责DbSqlSession相关操作GenericManagerFactory: 负责AbstractManager相关操作Event-Listener组件:Activiti允许客户代码介⼊流程执⾏,提供了事件监听组件监听的事件类型:TaskListenerJavaDelegateExpressionExecutionListenerProcessEngineConfigurationImpl持有DelegateInterceptor的某个实例,⽅便调⽤handleInvocation Cache组件DbSqlSession中有cache的实现Activiti基于List和Map来做缓存:如查询时先查缓存,没有则直接查询并放⼊缓存异步执⾏组件Activiti可以执⾏任务,JobExecutor为其核⼼类,JobExecutor包含三个主要属性:JobAcquisitionThreadBlockingQueueThreadPoolExecutor⽅法ProcessEngines在引擎启动时调⽤JobExecutor.start,JobAcquisitionThread 线程即开始⼯作,其run⽅法不断循环执⾏AcquiredJobs中的job,执⾏⼀次后线程等待⼀定时间直到超时或者JobExecutor.jobWasAdded⽅法,因为有新任务⽽被调⽤。
activity工作流表结构分析
activity工作流表结构分析activity工作流表结构分析版权声明:本文为博主原创文章,未经博主允许不得转载。
1、结构设计1.1、逻辑结构设计Activiti使用到的表都是ACT_开头的。
ACT_RE_*:’RE’表示repository(存储),RepositoryService接口所操作的表。
带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
ACT_RU_*:‘RU’表示runtime,运行时表-RuntimeService。
这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。
Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。
这就保证了这些运行时的表小且快。
ACT_ID_*:’ID’表示identity (组织机构),IdentityService接口所操作的表。
用户记录,流程中使用到的用户和组。
这些表包含标识的信息,如用户,用户组,等等。
ACT_HI_*:’HI’表示history,历史数据表,HistoryService。
就是这些表包含着流程执行的历史相关数据,如结束的流程实例,变量,任务,等等ACT_GE_*:全局通用数据及设置(general),各种情况都使用的数据。
1.2、所有表的含义序号表名说明1 act_ge_bytearray二进制数据表2 act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,3 act_hi_actinst历史节点表4 act_hi_attachment历史附件表5 act_hi_comment历史意见表6 act_hi_identitylink历史流程人员表7 act_hi_detail历史详情表,提供历史变量的查询8 act_hi_procinst历史流程实例表9 act_hi_taskinst历史任务实例表10act_hi_varinst历史变量表11act_id_group用户组信息表12act_id_info用户扩展信息表13act_id_membership用户与用户组对应信息表14act_id_user用户信息表15. act_re_deployment部署信息表16. act_re_model流程设计模型部署表17act_re_procdef流程定义数据表18act_ru_event_subscr throwEvent、catchEvent时间监听信息表19act_ru_execution运行时流程执行实例表20act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息21act_ru_job运行时定时任务数据表22act_ru_task运行时任务节点表23act_ru_variable运行时流程变量数据表2、表以及索引信息2.1 二进制数据表(act_ge_bytearray)2.1.1 简要描述 保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。
Activiti工作流数据库表结构
Activiti数据表结构目录1ACTIVITI数据库表结构 ----------------------------------------------------------------------------------------------- 21.1数据库表名说明 ------------------------------------------------------------------------------------------------ 21.2数据库表结构---------------------------------------------------------------------------------------------------- 31.2.1Activiti数据表清单: ---------------------------------------------------------------------------------------- 31.2.2表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源)-------------------------------- 31.2.3表名:ACT_GE_PROPERTY (系统相关属性) ----------------------------------------------------- 41.2.4表名:ACT_HI_ACTINST (历史节点表) ------------------------------------------------------------ 51.2.5表名:ACT_HI_ATTACHMENT (附件信息)-------------------------------------------------------- 61.2.6表名:ACT_HI_COMMENT (历史审批意见表)-------------------------------------------------- 61.2.7表名:ACT_HI_DETAIL (历史详细信息)----------------------------------------------------------- 71.2.8表名:ACT_HI_IDENTITYLINK (历史流程人员表) ---------------------------------------------- 81.2.9表名:ACT_HI_PROCINST(历史流程实例信息)核心表---------------------------------------- 81.2.10表名:ACT_HI_TASKINST(历史任务流程实例信息)核心表------------------------------ 91.2.11表名:ACT_HI_VARINST(历史变量信息) ------------------------------------------------------ 91.2.12表名:ACT_ID_GROUP(用户组表) ------------------------------------------------------------ 101.2.13表名:ACT_ID_INFO (用户扩展信息表) ---------------------------------------------------- 101.2.14表名:ACT_ID_MEMBERSHIP(用户用户组关联表) -------------------------------------- 111.2.15表名:ACT_ID_USER(用户信息表) ------------------------------------------------------------ 111.2.16表名:ACT_RE_DEPLOYMENT(部署信息表)------------------------------------------------ 121.2.17表名:ACT_RE_MODEL (流程设计模型部署表) ----------------------------------------------- 121.2.18表名:ACT_RE_PROCDEF (流程定义表) ---------------------------------------------------- 131.2.19表名:ACT_RU_EVENT_SUBSCR (运行时事件) ------------------------------------------------- 141.2.20表名:ACT_RU_EXECUTION (运行时流程执行实例) ----------------------------------- 151.2.21表名:ACT_RU_IDENTITYLINK(身份联系) --------------------------------------------------- 151.2.22表名:ACT_RU_JOB(运行中的任务)---------------------------------------------------------- 161.2.23表名:ACT_RU_TASK(运行时任务数据表) ------------------------------------------------------ 161.2.24表名:ACT_RU_VARIABLE(运行时流程变量数据表) ----------------------------------------- 17 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------------- 181Activiti数据库表结构1.1数据库表名说明Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
activiti表结构
1、结构设计1.1、逻辑结构设计Activiti使用到的表都是ACT_开头的。
ACT_RE_*:’RE’表示repository(存储),RepositoryService接口所操作的表。
带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
ACT_RU_*:‘RU’表示runtime,运行时表-RuntimeService。
这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。
Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。
这就保证了这些运行时的表小且快。
ACT_ID_*:’ID’表示identity (组织机构),IdentityService接口所操作的表。
用户记录,流程中使用到的用户和组。
这些表包含标识的信息,如用户,用户组,等等。
ACT_HI_*:’HI’表示history,历史数据表,HistoryService。
就是这些表包含着流程执行的历史相关数据,如结束的流程实例,变量,任务,等等ACT_GE_*:全局通用数据及设置(general),各种情况都使用的数据。
6 act_hi_identitylink历史流程人员表7 act_hi_detail历史详情表,提供历史变量的查询8 act_hi_procinst历史流程实例表9 act_hi_taskinst历史任务实例表10 act_hi_varinst历史变量表11 act_id_group用户组信息表12 act_id_info用户扩展信息表13 act_id_membership用户与用户组对应信息表14 act_id_user用户信息表15. act_re_deployment部署信息表16. act_re_model流程设计模型部署表17 act_re_procdef流程定义数据表18 act_ru_event_subscrthrowEvent、catchEvent时间监听信息表19 act_ru_execution运行时流程执行实例表20 act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息21 act_ru_job运行时定时任务数据表22 act_ru_task运行时任务节点表23 act_ru_variable运行时流程变量数据表2、表以及索引信息2.1 二进制数据表(act_ge_bytearray)2.1.1 简要描述保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。
activiti7表结构说明
Activiti7表结构说明1. 介绍Activiti是一个开源的业务流程管理(BPM)框架,它提供了一套完整的流程引擎和工具,用于设计、执行和管理各种类型的业务流程。
Activiti7是Activiti框架的最新版本,它在前一版本的基础上进行了大量改进和优化。
本文将对Activiti7的表结构进行详细说明,包括表名、字段名、数据类型等信息。
了解Activiti7的表结构对于开发人员来说非常重要,可以帮助我们更好地理解和使用Activiti框架。
2. 表结构说明2.1 ACT_RE_* 表这些表存储了流程定义和流程资源相关的信息。
•ACT_RE_PROCDEF:存储流程定义的信息,包括流程定义ID、名称、版本号等。
•ACT_RE_DEPLOYMENT:存储部署的信息,包括部署ID、名称、时间等。
•ACT_RE_MODEL:存储模型信息,包括模型ID、名称、创建时间等。
•ACT_GE_BYTEARRAY:存储字节数组相关信息。
2.2 ACT_RU_* 表这些表存储了运行时相关的数据,即正在执行中的流程实例和任务。
•ACT_RU_EXECUTION:存储执行实例相关信息。
•ACT_RU_TASK:存储任务相关信息。
•ACT_RU_IDENTITYLINK:存储运行时身份链接信息。
2.3 ACT_HI_* 表这些表存储了历史数据,即已完成的流程实例和任务的相关信息。
•ACT_HI_PROCINST:存储历史流程实例相关信息。
•ACT_HI_TASKINST:存储历史任务实例相关信息。
•ACT_HI_ACTINST:存储历史节点实例相关信息。
2.4 ACT_ID_* 表这些表存储了身份认证和授权相关的数据。
•ACT_ID_USER:存储用户信息。
•ACT_ID_GROUP:存储用户组信息。
•ACT_ID_MEMBERSHIP:存储用户与用户组的关系。
2.5 其他表除了上述核心表外,Activiti7还包括一些其他表,用于存储一些特定功能的数据。
activiti数据库表结构全貌解析
activiti数据库表结构全貌解析下⾯本⼈介绍⼀些activiti这款开源流程设计引擎的数据库表结构,⾸先阐述:我们刚开始接触或者使⽤⼀个新的东西(技术)时我们⾸先多问⼀下⾃⼰⼏个为什么?为什么activiti在⼯作流程领域这么流⾏呢?仅仅是因为开源么?实现如此强⼤的流程引擎,activiti底层设计是如何进⾏的?activiti中依赖哪些技术等?这些可能应该是那些刚接触这个开源流程引擎产品的⼈应该有的疑问。
我们在⽤开源产品的都是其实应该多问⾃⼰为什么?这样才能有所进步,不是么?兴许你⼀时兴起,“起笔”就把⼀款属于你⾃⼰的开源作品给做出来了!了解⼀个开源作品,它的底层很重要。
在使⽤它之前,你是否尝试过了解它的底层。
那么这些尝试是否对你有必要呢?个⼈解决有必要,⾸先这个东西确实在你看来是个有⽤的东西,你对它感兴趣。
兴许将来你在应⽤它的时候可能会发现它的BUG,其实⼤⽜写的东西也未必是完美的,兴许你在使⽤时候就发现其中不满意的东西,那么你就可以向开元社区提交的你的BUG!就⽐如说我们在了解activiti的底层数据结构之后,在我们使⽤activiti的时候发现⼀些数据查询过程中出现性能瓶颈时,我们可以尝试分析activiti的数据查询规则,activiti的数据访问层依赖于mybatis,那么我可以分析打包在jar包⾥的关于mybatis的sql配置部分,看看那些所谓⼤⽜们写的sql是否存在问题。
当你发现问题时,你可以对它进⾏修改,然后重新打包。
从⽽满⾜⾃⼰在项⽬有中的需要。
这些都是⼀些关于进阶了解⼀个开源作品的⽅式。
在这样过程中你会发现你在某⽅⾯会有所进步。
以上内容抛砖引⽟,希望对你有所帮助!好吧,请允许我废话了这么久,下⾯开始解析activiti的数据库底层的模型截图:以上就activiti底层数据库23张表结构,个⼈觉得了解底层数据库模型是有必要的,让我们直观的了解⼀个开源作品的底层设计结构,对⽇后⼤伙使⽤的时候能有很⼤的帮助,特别是activiti的⾼级应⽤。
activiti7表结构说明(一)
activiti7表结构说明(一)Activiti7表结构说明1. 概述本文将介绍Activiti7的表结构,为创作者提供更深入的了解和使用指导。
2. 核心表结构Activiti7的核心表结构主要分为以下几个部分:ACT_RE表系列这些表主要用于存储流程定义相关的信息,包括流程定义的版本管理和发布信息。
•ACT_RE_PROCDEF:存储流程定义的基本信息,如流程定义的key、名称、版本等。
•ACT_RE_DEPLOYMENT:存储流程部署的信息,包括部署时间、部署人等。
ACT_RU表系列这些表主要用于存储流程运行时的数据,包括流程实例、任务和执行对象等。
•ACT_RU_EXECUTION:存储流程实例的执行信息。
•ACT_RU_TASK:存储待办任务的信息,包括任务的处理人、处理时间等。
ACT_ID表系列这些表主要用于存储用户和组织机构等身份认证相关的信息。
•ACT_ID_USER:存储用户的基本信息,如用户名、密码等。
•ACT_ID_GROUP:存储组织机构信息,如组织机构名称、描述等。
3. 扩展表结构除了核心表结构外,Activiti7还支持用户对表结构进行自定义扩展。
ACT_GE表系列这些表主要用于存储通用的流程引擎数据,可用于扩展业务实体。
•ACT_GE_BYTEARRAY:存储通用的字节数据,可用于存储流程变量、附件等。
自定义表结构在Activiti7中,用户可以根据业务需求自定义表结构,并在流程定义和流程实例中使用。
4. 总结本文介绍了Activiti7的表结构,包括核心表结构和扩展表结构。
了解这些表的作用和关系,有助于创作者更好地使用Activiti7进行流程设计和管理。
以上是Activiti7表结构说明的详细内容。
希望本文对您有所帮助,欢迎您的阅读和使用。
参考资料•Activiti官方文档:。
act_re_model表结构
act_re_model表结构act_re_model表是Activiti工作流引擎中的一个重要表,用于存储流程模型的相关信息。
在本文中,我们将详细介绍act_re_model表的结构和各个字段的含义。
act_re_model表的结构如下:1. ID:流程模型的唯一标识,是一个字符串类型的字段。
2. REV:流程模型的版本号,是一个整型字段。
3. NAME:流程模型的名称,是一个字符串类型的字段。
4. KEY:流程模型的键值,是一个字符串类型的字段。
该字段在流程模型的创建过程中由用户指定,用于唯一标识一个流程模型。
5. CATEGORY:流程模型的分类,是一个字符串类型的字段。
用户可以根据自己的需求对流程模型进行分类管理。
6. CREATE_TIME:流程模型的创建时间,是一个日期类型的字段。
7. LAST_UPDATE_TIME:流程模型的最后更新时间,是一个日期类型的字段。
8. VERSION:流程模型的版本,是一个整型字段。
每次对流程模型进行修改时,版本号都会自动加1。
9. META_INFO:流程模型的元信息,是一个字符串类型的字段。
该字段用于存储流程模型的一些额外信息,如流程模型的描述、作者等。
10. DEPLOYMENT_ID:流程模型的部署ID,是一个字符串类型的字段。
当流程模型被部署到Activiti引擎中时,会生成一个唯一的部署ID。
11. EDITOR_SOURCE_VALUE_ID:流程模型的源码值ID,是一个字符串类型的字段。
该字段用于存储流程模型的源码值。
12. EDITOR_SOURCE_EXTRA_VALUE_ID:流程模型的额外源码值ID,是一个字符串类型的字段。
该字段用于存储流程模型的额外源码值。
13. TENANT_ID:租户ID,是一个字符串类型的字段。
该字段用于多租户环境下对流程模型进行区分。
以上就是act_re_model表的结构和各个字段的含义。
通过对这些字段的了解,我们可以更好地理解和使用Activiti工作流引擎中的流程模型功能。
activiti工作流数据库表详细介绍(23张表)
activiti工作流数据库表详细介绍(23张表)Activiti的后台是有数据库的支持,所有的表都以ACT_开头。
第二部分是表示表的用途的两个字母标识。
用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。
这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。
这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。
Activiti 只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。
这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。
这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。
这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。
资源库流程规则表1) act_re_deployment 部署信息表2) act_re_model 流程设计模型部署表3) act_re_procdef 流程定义数据表运行时数据库表1) act_ru_execution运行时流程执行实例表2) act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息3) act_ru_task运行时任务节点表4) act_ru_variable运行时流程变量数据表历史数据库表1) act_hi_actinst 历史节点表2) act_hi_attachment历史附件表3) act_hi_comment历史意见表4) act_hi_identitylink历史流程人员表5) act_hi_detail历史详情表,提供历史变量的查询6) act_hi_procinst历史流程实例表7) act_hi_taskinst历史任务实例表8) act_hi_varinst历史变量表组织机构表1) act_id_group用户组信息表2) act_id_info用户扩展信息表3) act_id_membership用户与用户组对应信息表4) act_id_user用户信息表这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足通用数据表1) act_ge_bytearray二进制数据表2) act_ge_property属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,书生整理于网络。
activiti 数据库表结构
activiti 数据库表结构
Activiti是一个BPMN(Business Process Management Notation)工作流引擎,使用关系数据库存储流程定义、执行过程和用户任务等信息。
Activiti的数据库包括以下表结构:
1. ACT_RE_*:这些表包含流程定义(repository)信息,包括流程定义的描述、版本、流程定义图等。
2. ACT_RU_*:这些表包含运行时(runtime)的流程实例信息,比如正在执行的流程实例、用户任务、定时器等。
这些表是Activiti的核心,主要用于执行和控制流程。
3. ACT_HI_*:这些表包含历史(history)数据,主要用于记录流程的执行历史,例如流程实例状态的变化、用户任务的完成情况等。
4. ACT_ID_*:这些表包含标识(identity)信息,包括用户、用户组、角色等。
5. ACT_GE_*:这些表包含常用的公共数据,例如任务的执行日志、异步任务的锁定等。
以上是Activiti数据库表结构的主要内容,不同版本的Activiti可能会有所差异。
在使用Activiti的过程中,需要在关系数据库中创建相应的表结构,并在Activiti
配置文件中指定数据库连接信息。
工作流引擎activiti表结构和代码详解
工作流引擎activiti表结构和代码详解工作流引擎Activiti的表结构和代码详解Activiti是一个基于Java语言的工作流引擎,它提供了一种可执行业务流程的方式,实现了对流程进行定义、部署、执行、监控等全生命周期的管理,具有高效、灵活、可扩展等优点。
本文将详细介绍Activiti 的表结构和代码实现。
1. 表结构Activiti引擎定义了多张表,这些表按照功能可以分为以下几类:(1) 流程定义相关表ACT_GE_BYTEARRAY:流程定义和流程实例相关的二进制文件存储表,包括BPMN 2.0 XML文件和各种图片等资源文件。
ACT_RE_DEPLOYMENT:部署信息表,包含部署时间、部署后的ID 和名称。
ACT_RE_PROCDEF:流程定义信息表,包含流程ID、XML文件名、键值和流程部署ID等信息。
(2) 运行时数据表ACT_RU_EXECUTION:流程实例运行时数据表,包含流程实例ID、业务ID、当前任务ID等信息。
ACT_RU_TASK:任务运行时数据表,包含任务分配人、执行候选人、任务完成时间等信息。
(3) 历史数据表ACT_HI_PROCINST:流程实例历史数据表,包含流程实例ID、开始时间、结束时间等信息。
ACT_HI_TASKINST:任务历史数据表,包含任务分配人、执行人、开始时间等信息。
(4) 操作记录相关表ACT_HI_ACTINST:历史记录,包含流程实例ID、开始时间、结束时间等信息。
ACT_HI_COMMENT:批注表,记录了流程的操作记录和评论等信息。
2. 代码实现Activiti引擎在代码实现方面遵循了面向对象的思想和设计模式,其中核心类包括ProcessEngine、RepositoryService、RuntimeService和TaskService等。
下面通过实例代码来展示Activiti的各个组件之间的调用关系。
(1) 初始化ProcessEngineProcessEngine是Activiti引擎的核心组件,负责管理运行时数据、历史记录、任务等等。
Activiti数据库表结构
Activiti工作流引擎数据库表结构数据库表的命名Acitiviti数据库中表的命名都是以ACT_开头的。
第二部分是一个两个字符用例表的标识。
此用例大体与服务API是匹配的。
●ACT_RE_*:’RE’表示repository。
带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
●ACT_RU_*:’RU’表示runtime。
这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。
Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录(删除的记录保存在act_hi_*对应的表中)。
这就保证了这些运行时的表小且快。
●ACT_ID_*:’ID’表示identity。
这些表包含标识的信息,如用户,用户组,等等。
●ACT_HI_*:’HI’表示history。
就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
●ACT_GE_*:普通数据,各种情况都使用的数据。
数据库表结构图数据库表结构说明●ACT_GE_PROPERTY:属性数据表。
存储这个流程引擎级别的数据。
_:属性名称2.VALUE_:属性值3.REV_INT:版本号记录取值:next.dbid:整形自增id时,记录id增长队列值schema.history:历史对应的数据结构版本schema.version: 当前使用引擎对应的数据结构版本●ACT_GE_BYTEARRAY:用来保存部署文件的大文本数据1.ID_:资源文件编号,自增长2.REV_INT:版本号_:资源文件名称4.DEPLOYMENT_ID_:来自于父表ACT_RE_DEPLOYMENT的主键5.BYTES_:大文本类型,存储文本字节流●ACT_RE_DEPLOYMENT:用来存储部署时需要持久化保存下来的信息1.ID_:部署编号,自增长_:部署包的名称3.DEPLOY_TIME_:部署时间●ACT_RE_PROCDEF:业务流程定义数据表1.ID_:流程ID,由“流程编号:流程版本号:自增长ID”组成2.CATEGORY_:流程命名空间(该编号就是流程文件targetNamespace的属性值)_:流程名称(该编号就是流程文件process元素的name属性值)4.KEY_:流程编号(该编号就是流程文件process元素的id属性值)5.VERSION_:流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)6.DEPLOYMENT_ID_:部署编号7.RESOURCE_NAME_:资源文件名称8.DGRM_RESOURCE_NAME_:图片资源文件名称9.HAS_START_FROM_KEY_:是否有Start From Key注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。
activiti工作流表名及字段详解
1. activiti工作流简介activiti是一个轻量级的工作流引擎,它是一个开源的、Java语言的工作流和业务过程管理(BPM)评台。
activiti可以帮助开发者简化和优化企业的业务流程,提高工作效率,降低成本。
2. activiti工作流表名及字段详解在activiti的工作流引擎中,有一些核心的数据表用来存储流程定义、流程实例、任务等信息。
下面我们就来详细解释activiti的工作流表名及字段。
2.1 ACT_RE_*:流程存储表ACT_RE_*表是存储流程静态信息的表,包括流程定义、流程资源等。
ACT_RE_*表的常见字段包括:- ID: 唯一标识- NAME: 名称- KEY: 关键字- DEPLOYMENT_ID: 部署ID- RESOURCE_NAME: 资源名称- DGRM_RESOURCE_NAME: 流程图名称2.2 ACT_RU_*:运行时表ACT_RU_*表是存储流程运行时数据的表,包括流程实例、任务实例等。
ACT_RU_*表的常见字段包括:- ID: 唯一标识- REV: 版本号- EXECUTION_ID: 执行ID- PROC_DEF_ID: 流程定义ID- NAME: 名称- ASSIGNEE: 指派人- CREATE_TIME: 创建时间2.3 ACT_HI_*:历史数据表ACT_HI_*表是存储历史数据的表,包括流程实例的历史数据、任务的历史数据等。
ACT_HI_*表的常见字段包括:- PROC_DEF_ID: 流程定义ID- PROC_INST_ID: 流程实例ID- TASK_ID: 任务ID- START_TIME: 开始时间- END_TIME: 结束时间- DURATION: 持续时间2.4 其他表及字段在activiti工作流引擎中,还有一些其他重要的表和字段,包括ACT_ID_*表(存储用户、角色等信息)、ACT_GE_*表(存储通用的流程引擎数据)等。
Activiti工作流对象关系及表结构
Activiti数据表结构和核心对象关系西安创富电子科技有限公司二〇一三年九月版本历史目录1Activiti数据库表结构1.1数据库表名说明1.2数据库表结构2Activiti中主要对象的关系1 Activiti数据库表结构1.1 数据库表名说明Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
◆ ACT_GE_*: “GE”代表“General”(通用),用在各种情况下;◆ ACT_HI_*: “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。
当系统中配置history的信息记录级别为“none”时,这一类表也可以不用;◆ ACT_ID_*: “ID”代表“Identity”(身份),这些表中保存的都身份信息,如用户和组以及两者之间的关系。
如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;◆ ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);◆ ACT_RU_*: “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。
Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;1.2 数据库表结构Activiti数据表清单: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 中各个对象是如何关联的。
activiti工作流表结构
activiti工作流表结构Activiti是一个轻量级的工作流引擎,是一个基于 BPMN 2.0 标准的工作流引擎。
Activiti 采用了标准的 BPMN 2.0 规范,同时支持流程定义、流程实例、任务、网关、事件、监听器等基本元素,同时支持自定义元素。
Activiti 工作流引擎的表结构是其核心部分之一,本文将详细介绍 Activiti 工作流引擎的表结构。
一、Activiti 工作流引擎的表结构Activiti 工作流引擎的表结构包括以下几个方面:1. ACT_RE_*:RE 表示 repository,这些表包含了流程定义和流程静态数据,例如流程定义、流程定义的资源文件等。
2. ACT_RU_*:RU 表示 runtime,这些表包含了流程运行时的数据,例如流程实例、任务、变量等。
3. ACT_HI_*:HI 表示 history,这些表包含了流程历史数据,例如历史流程实例、历史任务、历史变量等。
4. ACT_ID_*:ID 表示 identity,这些表包含了 Activiti 工作流引擎的用户、组、角色等身份信息。
5. ACT_GE_*:GE 表示 general,这些表包含了 Activiti 工作流引擎的常规数据,例如数据库信息、属性等。
下面分别对这些表进行详细介绍。
二、ACT_RE_* 表1. ACT_RE_DEPLOYMENT该表用于存储流程部署信息,包括流程部署 ID、名称、部署时间等信息。
2. ACT_RE_PROCDEF该表用于存储流程定义信息,包括流程定义 ID、名称、KEY、版本号、部署 ID 等信息。
3. ACT_GE_BYTEARRAY该表用于存储 Activiti 工作流引擎中的字节数组信息,例如流程定义的 XML 文件、流程定义的 BPMN 图片等。
三、ACT_RU_* 表1. ACT_RU_EXECUTION该表用于存储流程实例信息,包括流程实例 ID、流程定义 ID、流程实例状态等信息。
activity7 act_task_running_info表结构
activity7 act_task_running_info表结构
`act_task_running_info`表是Activiti工作流引擎中的一个表,用于存储任务的运行信息。
以下是该表的一些常见字段:
- `id`: 主键,唯一标识一条记录。
- `task_id`: 任务ID,与Activiti中的`task`表关联。
- `process_instance_id`: 流程实例ID,与Activiti中的`process_instance`表关联。
- `execution_id`: 执行实例ID,与Activiti中的`execution`表关联。
- `task_name`: 任务名称。
- `task_owner`: 任务所有者。
- `assignee`: 被分配给该任务的用户。
- `start_time`: 任务开始时间。
- `due_date`: 任务截止日期。
- `priority`: 任务优先级。
- `description`: 任务描述。
- `state`: 任务状态,如待处理、进行中、已完成等。
- `operator`: 操作员,执行该任务的用户。
- `operate_time`: 操作时间。
- `remark`: 备注信息。
需要注意的是,具体的表结构可能因Activiti版本和配置而有所不同,以上仅为一般性的描述。
Activiti工作流对象关系与表结构
Activiti数据表结构和核心对象关系西安创富电子科技有限公司二〇一三年九月版本历史目录1ACTIVITI数据库表结构 -------------------------------------------------- 41.1 数据库表名说明 ----------------------------------------------------- 41.2 数据库表结构 ------------------------------------------------------- 4 2ACTIVITI中主要对象的关系 ---------------------------------------------- 51Activiti数据库表结构1.1数据库表名说明Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
◆ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;◆ACT_HI_*: “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。
当系统中配置history的信息记录级别为“none”时,这一类表也可以不用;◆ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都身份信息,如用户和组以及两者之间的关系。
如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;◆ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);◆ACT_RU_*: “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。
Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;1.2数据库表结构Activiti数据表清单:2Activiti中主要对象的关系本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的。
activiti工作流表结构
activiti工作流表结构Activiti是一款开源的工作流引擎,它提供了一套完整的工作流解决方案,包括流程定义、流程部署、流程实例管理、任务管理、历史数据管理等功能。
在Activiti中,所有的数据都存储在数据库中,因此了解Activiti的表结构对于开发人员来说是非常重要的。
Activiti的表结构非常清晰和简单,主要分为以下几个部分: 1. ACT_RE_*:这个前缀的表存储的是“静态”信息,包括流程定义、流程定义的资源文件(如bpmn文件)、流程定义的图片等。
这些表的数据在流程部署时进行插入,一般不会发生变化,因此称为静态信息。
2. ACT_RU_*:这个前缀的表存储的是“运行时”信息,包括流程实例、任务、变量等。
这些表的数据在流程执行时进行插入、更新和删除,因此称为运行时信息。
3. ACT_HI_*:这个前缀的表存储的是“历史”信息,包括流程实例、任务、变量等的历史数据。
这些表的数据在流程执行完毕后进行插入,因此称为历史信息。
4. ACT_ID_*:这个前缀的表存储的是身份信息,包括用户、用户组、角色等。
这些表的数据用于身份认证和授权。
下面我们来详细介绍Activiti的表结构。
1. ACT_RE_*表1.1 ACT_RE_DEPLOYMENT这个表存储的是流程部署的信息,每次部署流程都会在这个表中插入一条记录。
字段说明如下:- ID_: 主键- NAME_: 部署名称- DEPLOY_TIME_: 部署时间- CATEGORY_: 部署分类- TENANT_ID_: 租户ID1.2 ACT_RE_PROCDEF这个表存储的是流程定义的信息,每次部署流程都会在这个表中插入一条记录。
字段说明如下:- ID_: 主键- NAME_: 流程名称- KEY_: 流程定义的key- VERSION_: 流程定义的版本号- DEPLOYMENT_ID_: 部署ID- RESOURCE_NAME_: 流程定义的资源文件名称- DGRM_RESOURCE_NAME_: 流程定义的图片文件名称- DESCRIPTION_: 流程定义的描述信息- HAS_START_FORM_KEY_: 是否有启动表单- HAS_GRAPHICAL_NOTATION_: 是否有流程图- SUSPENSION_STATE_: 流程定义的挂起状态- TENANT_ID_: 租户ID1.3 ACT_GE_BYTEARRAY这个表存储的是流程定义的资源文件和图片文件的二进制数据。
activiti act_ru_task表结构
Activiti是一个用于工作流和业务流程管理的开源平台。
act_ru_task表是Activiti 数据库中的一个表,用于存储关于正在运行的任务的信息。
act_ru_task表的结构如下:
•ID:任务的唯一标识符
•PROC_DEF_ID:流程定义的ID
•PROC_INST_ID:流程实例的ID
•ACT_ID:任务的ID
•NAME:任务名称
•DESCR:任务描述
•FORM_KEY:表单的键
•PARENT_ID:父任务的ID
•SCOPE_ID:作用域的ID
•EXECUTION_ID:执行实例的ID
•TENANT_ID:租户ID
•USER_ID:执行任务的用户ID
•PLATFORM:执行平台
•CLUSTER_NODE:集群节点标识符
•ASSIGNEE:任务的执行者
•OWNER:任务的所有者
•CREATE_TIME:任务的创建时间
•SUSPEND_TIME:任务挂起时间
•END_TIME:任务的结束时间
•EXECUTION_URL:执行实例的URL
•TASK_URL:任务的URL
•IS_COUNT_ENABLED:是否启用计数
•IS_EXTERNALLY_TRIGGERED:是否由外部触发
•IS_钌□ (...) 引擎_ENABLED:是否启用流程引擎
请注意,这里列出的字段是根据常见的Activiti版本和配置提供的。
具体的表结构可能会因Activiti的版本、配置和扩展而有所不同。
如果您使用的是特定的Activiti版本或定制配置,建议参考相关的文档或数据库架构以获取准确的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Activiti数据表结构和核心对象关系
西安创富电子科技有限公司
二〇一三年九月
版本历史
目录
1ACTIVITI数据库表结构--------------------------------------------------------------------------------------- 4
1.1 数据库表名说明 ---------------------------------------------------------------------------------------- 4
1.2 数据库表结构 ------------------------------------------------------------------------------------------- 4 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------- 5
1Activiti数据库表结构
1.1数据库表名说明
Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
◆ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
◆ACT_HI_*: “HI”代表“History”(历史),这些表中保存的都是历史数
据,比如执行过的流程实例、变量、任务,等等。
当系统中配置history的信息记录级别为“none”时,这一类表也可以不用;
◆ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都身份信
息,如用户和组以及两者之间的关系。
如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
◆ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静
态’信息,如流程定义和流程资源(如图片、规则等);
◆ACT_RU_*: “RU”代表“Runtime”(运行时),这些表中保存一些流程实
例、用户任务、变量等的运行时数据。
Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;
1.2数据库表结构
Activiti数据表清单:
2Activiti中主要对象的关系
本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti 中各个对象是如何关联的。
在开始之前先看看下图,对整个对象结构有个了解,再结合实例详细介绍理解。
图1.Activiti中几个对象之间的关系
我们模拟一个请假的流程进行分析介绍,该流程主要包含以下几个步骤:
◆员工申请请假
◆部门领导审批
◆人事审批
◆员工销假
ProcessInstance对象
员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。
简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。
流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。
启动完流程之后业务和流程已经建立了关联关系,第一步结束。
启动流程和业务关联区别:
◆对于自定义表单来说启动的时候会传入businessKey作为业务和流程的
关联属性
◆对于动态表单来说不需要使用businessKey关联,因为所有的数据都保存
在引擎的表中
◆对于外部表单来说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_相同。
执行子流程主流程挂起。
Task对象
前面说了ProcessInstance和业务是一对一关联的,和业务数据最亲密;而Task则和用户最亲密的(UserTask),用户每天的待办事项就是一个个的Task 对象。
从图1中看得出Execution和Task是一对一关系,Task可以是任何类型的Task实现,可以是用户任务(UserTask)、Java服务(Java ServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。
图4. 表ACT_RU_TASK
Task是在流程定义中看到的最大单位,每当一个Task完成的时候会引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。
结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。
HistoryActivity(历史活动)
图5. 表ACT_HI_ACTINST
Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。
来根本没有Task相关的字段。
结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。
例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。