ACTIVITI 研究系列 —— 核心对象接口、业务和数据表

2014-11-10 22:50:16

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、核心对象和表关系类图

Activiti 核心对象(Craft6.cn 颜超敏).jpg

Activiti的核心对象有流程定义、执行实例、流程实例、任务 和 历史数据 这几类。

人员 和 表单 这两类实体和业务一般软件开发商会自行开发扩展。

所以我们关注Activiti主要关注上图第一行黄色的接口即可。

二、流程定义 ProcessDefinition

  •  基于接口ProcessDefinition定义了基本的元素

  •  ProcessDefinitionImpl 实现了PvmProcessDefinition(流程虚拟机中的流程定义接口)。

  • ProcessDefinitionEntity 实现了ProcessDefinition,并继承了ProcessDefinitionImpl(由其完成流程定义的实际业务处理,
    如启动、停止、审批等)

  • 对应的数据表示ACT_RE_PROCDEF。

  • 对应的服务类是:RepositoryService

三、执行实例

  • 接口是Execution,定义了执行实例的基本元素。注意流程实例(ProcessInstance)也是执行实例,
    该接口继承Execution。

  • 执行实例也可以认为是执行计划,表示从流程往下的路径,比如启动流程后,在第一个任务(A)往下有
    N个同步分支(N》=1),这时便会生成N个Execution,即A 和 不同分支节点 N条执行路径。

  • 该接口的实现类是ExecutionEntity,由于继承了VariableScopeImpl,表示可以直接操作流程变量。
    注意不只是读,还是可以增加或更新变量。因为ExecutionEntity是一个“充血对象”,可以进行业务更新操作。

四、流程实例

  • 接口同样是Execution

  • 流程实例和执行实例的关系是 1:N,即启动一个流程后,在进行任何的操作,都会存在一个流程实例 和 N个执行实例,N>=1。

  • 它的实现类同样是ExecutionEntity,也可以操作流程变量。

五、任务

  • 接口是Task

  • 注意在Activiti中,Task仅指人工参与的任务,即UserTask,比如待办事项就是人工任务。

  • TaskEntity为Task的实现类,并继承了VariableScopeImpl,用于操作流程变量。

  • 通过TaskService进行查询。

  • 对应的数据表是:ACT_RU_TASK

六、流程变量

  • 通过VariableScope 和 VariableScopeImpl处理流程变量。

  • 由于TaskEntity和ExecutionEntity 均继承VariableScopeImpl,所以表示
    这两个类(任务或者执行实例)均可以读取和操作流程变量。

  • 在实际操作中,也可以通过TaskService服务来处理流程变量。

  • 对应的数据表是ACT_RU_VARIABLE

七、历史数据

  • 历史数据比较简单,基本上是一类业务对应一个实体,并对应相关的一张历史数据表。

  • 由HistoryService提供所有历史数据的查询。


可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


ACTIVITI 研究系列 —— 核心对象接口、业务和数据表

Activiti,核心对象,流程实例,ProcessInstance,执行实例,Execution,Task,任务,人工任务,用户任务

本文讲述Activiti的核心对象的接口、类和相关业务说明,并说明了各个对象和数据表的关联。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件