Activiti工作流框架
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完。
Activiti是业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。其核心是超快速,稳定的BPMN2流程引擎。它易于与 Spring集成使用。
工作流技术的优点
(待补充)
数据库表结构
Activiti总共包含23张数据表,所有的表名默认以“act_”开头。第二部分用两个字母表明表的用例:
ge:代表General(通用),用在各种情况下;
hi:代表History(历史),这些表保存历史数据,比如执行过的流程实例、任务等等;
id:代表Identity(身份),保存身份信息,如用户和组以及两者之间的关系;
re:Repository(仓库),保存一些静态信息,如流程定义和流程资源;
ru:Runtime(运行时),保存一些流程实例、用户任务、变量等运行时数据。
表说明
act_re_deployment 部署信息表
用来存储部署时需要持久化保存下来的信息
ID_主键
NAME_ 部署包的名称
CATEGORY_ 类型
TENANT_ID_ 租户:多租户通常是在软件需要为多个不同组织服务时产生的概念
DEPLOY_TIME_ 部署时间
ENGINE_VERSION_ 引擎版本
KEY_ 键值
act_re_procdef流程定义表
ID_ 流程ID,由“KEY_+流程版本号+随机ID”组成
REV_版本号
CATEGORY_流程命名空间
NAME_流程名称
KEY_流程编号,流程文件的id属性值
VERSION_流程版本号
DEPLOYMENT_ID_部署ID
RESOURCE_NAME_资源文件名称
DGRM_RESOURCE_NAME_图片资源文件名称
DESCRIPTION_描述信息
HAS_START_FORM_KEY_是否从key启动
SUSPENSION_STATE_是否挂起
核心API
五项service
(待补充)
基本操作
设计流程图
流程定义增删改查
启动流程定义
任务增删改查
完成任务
历史信息查询
开发环境搭建
开发环境:JDK1.8
开发工具:eclipse
安装Activity Designer插件:见安装activiti插件
数据库:MySQL
服务器:Tomcat
工程搭建
相关maven依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>6.0.0</version>
</dependency>
待补充