Activiti工作流学习要点
1. 1个插件
在Eclipse中安装Activiti插件,让你可以在Eclipse中绘制Activiti工作流图
2. 1个引擎
ProcessEngine对象,Activiti工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。
所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量
ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
3. 1个配置文件
activiti.cfg.xml。Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数
4. 5种数据库表
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。
5. 23张表
不同的表存放不同方面的数据,有流程定义表、任务结点表、流程变量表、任务历史表等等。
| 表名 | 功能 |
|---|---|
| ACT_GE_PROPERTY | 属性数据表。存储这个流程引擎级别的数据。 |
| ACT_GE_BYTEARRAY | 用来保存部署文件的大文本数据 |
| ACT_RE_DEPLOYMENT | 用来存储部署时需要持久化保存下来的信息 |
| ACT_RE_PROCDEF | 业务流程定义数据表 |
| ACT_RE_MODEL | 流程设计模型部署表 |
| ACT_ID_GROUP | 用来存储用户组信息 |
| ACT_ID_MEMBERSHIP | 用来保存用户的分组信息 |
| ACT_ID_USER | 用来保存用户信息 |
| ACT_ID_INFO | 用户扩展信息表 |
| ACT_RU_EXECUTION | 运行时流程执行实例表 |
| ACT_RU_TASK | 运行时任务数据表 |
| ACT_RU_IDENTITYLINK | 任务参与者数据表。主要存储当前节点参与者的信息 |
| ACT_RU_VARIABLE | 运行时流程变量数据表 |
| ACT_RU_JOB | 运行时定时任务数据表 |
| ACT_RU_EVENT-SUBSCR | |
| ACT_HI_PROCINST | 历史流程实例表 |
| ACT_HI_ACTINST | 历史节点表 |
| ACT_HI_TASKINST | 历史任务实例表 |
| ACT_HI_DETAIL | 启动流程或者在任务complete之后,记录历史流程变量 |
| ACT_HI_ATTACHMENT | 历史附件表 |
| ACT_HI_COMMENT | 历史意见表 |
| ACT_HI_IDENTITYLINK | 历史流程人员表 |
| ACT_HI_VARINST | 历史变量表 |
流程文件部署主要涉及到的3个表:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF
6. 7大Service接口
| Service接口 | 作用 |
|---|---|
| RepositoryService | 流程仓库Service,用于管理流程仓库,例如部署、删除、读取流程资源 |
| IdentifyService | 身份Service,用于管理和查询用户、组之间的关系 |
| RuntimeService | 运行时Service,可以也拿过来处理所有正在运行状态的流程实例、任务等 |
| TaskService | 任务Service,用于管理和查询任务,例如签收、办理、指派等 |
| FormService | 表单Service,用于读取流程、任务相关的表单数据 |
| HistoryService | 历史Service,用于查询所有历史数据,例如流程实例、任务、活动、变量、附件 |
| ManagementService | 引擎管理Service,和具体业务无关,主要可以查询引擎配置、数据库、作业等 |
7. 7项基本操作
设计流程图(各种组件,如连线、用户任务、网关)
流程定义增删改查
流程变量增删改查
启动流程定义
任务增删改查
完成任务
历史信息查询
Activiti工作流学习要点的更多相关文章
- Activiti工作流学习之流程图应用详解
Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse ...
- Activiti工作流学习之概述(一)
一.工作流介绍 我第一次听到这个词,是蒙逼的,再看百度百度,更傻眼了,完全说的不像人话啊,举几个生活中的例子,就明白多了比如:请假.报销等等,如果文字太过抽象,请看图: 二.工作流引擎 Process ...
- Activiti工作流学习(三)Activiti工作流与spring集成
一.前言 前面Activiti工作流的学习,说明了Activiti的基本应用,在我们开发中可以根据实际的业务参考Activiti的API去更好的理解以及巩固.我们实际的开发中我们基本上都使用sprin ...
- Activiti工作流学习(一)部署对象和流程定义
一.前言 前一段时间在工作中,使用了流程审批,对api的调用非常不熟悉,都是调用别人写好的接口在界面上进行显示,基本了解了流程审批的主要步骤,现对流程审批进行学习,主要是调用api进行CRUD操作,感 ...
- Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析
原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...
- Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理
原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...
- Activiti工作流学习-----基于5.19.0版本(6)
七. BPMN的简介 读者了解到这里,应付一般的工作流开发已经足够了.此处应该有华丽的分割线,在工作流项目中核心开发人员主要是对工作流业务设计以及实现,而初级开发人员是对业务功能的代码实现.以后将主要 ...
- Activiti工作流学习-----基于5.19.0版本(1)
该版本的Activiti运行须知: 1.JDK 6+,Eclipse最好是Kepler以上版本. 2.试验功能都有EXPERIMENTAL标注,被标注的部分不应该视为稳定的. 有兴趣的同学可以去了解下 ...
- Activiti工作流学习笔记一
Activiti工作流 一:Activiti第一天 1:工作流的概念 说明: 假设:这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰冯小刚王中军 事件(动作):请假.批准.不批准 工作流 ...
随机推荐
- java的过滤器对session进行检查
private void sendErrorToBrowser(HttpServletRequest request,HttpServletResponse response) throws IOEx ...
- Tomcat 签名认证配置简例
在项目的web.xml中增加 <security-constraint> <web-resource-collection> <web-resource-name> ...
- (二)Linux Shell编程——运算符、注释
2.7 Shell运算符 Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符.原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 ...
- SDUT 2623 The number of steps (概率)
The number of steps Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Mary stands in a stra ...
- SDUT 2608 Alice and Bob (巧妙的二进制)
Alice and Bob Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Alice and Bob like playing ...
- Orm框架开发之NewExpression合并问题
之前都是看别人写博客,自己没有写博客的习惯.在工作的过程中,总是会碰到许多的技术问题.有很多时候想记录下来,后面一直有许多的问题等着解决.总想着等系统完成了,再回头总结下.往往结果就把这事抛到脑后了. ...
- 两个变量交换的四种方法(Java) 七种方法(JS)
两个变量交换的四种方法(Java) 对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. (代码演示一下) 1 class TestEV 2 ...
- VC++字符串的使用及转换
CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指 ...
- PLSQL_性能优化索引Index介绍(概念)
2014-06-01 BaoXinjian
- EXTJS 5 学习笔记2 - Components
1. The Components Hierachy 组件体系 2. XTypes and Lazy Instantiation xtype与延迟初始化 1) 每个compo ...