《Activiti实战》是国内Activiti领域第1人撰写,Activiti项目负责人Tijs Rademakers高度认可并推荐;
《Activiti实战》根据Activiti新版本系统、深度讲解了BPMN2.0规范,以及Activiti功能、用法、技巧、实践和源代码分析。
《Activiti实战 》立足于实践,不仅让读者知其然,全面掌握Activiti架构、功能、用法、技巧和实践,广度足够;而且让读者知其所以然,深入理解Activiti的源代码实现、设计模式和PVM,深度也足够。
《Activiti实战 》一共四个部分:准备篇(1~2章)介绍了Activiti的概念、特点、应用、体系结构,以及开发环境的搭建和配置;基础篇(3~4章)首先讲解了Activiti Modeler、Activiti Designer两种流程设计工具的详细使用,然后详细讲解了BPMN2.0规范;实战篇(5~14章)系统讲解了Activiti的用法、技巧和实践,包含流程定义、流程实例、任务、子流程、多实例、事件以及监听器等;高级篇(15~21)通过集成WebService、规则引擎、JPA、ESB等各种服务和中间件来阐述了Activiti不仅仅是引擎,实际上是一个BPM平台,最后还通过源代码对它的设计模式及PVM进行了分析。
第一部分 准备篇
第1章 认识Activiti
1.1 什么是Activiti
1.2 工作流基础
1.2.1 什么是BPM
1.2.2 工作流生命周期
1.2.3 什么是BPMN
1.3 Activiti的特点
1.4 Activiti的应用
1.5 Activiti架构与组件
1.6 Activiti与jBPM5比较
1.7 本章小结
第2章 搭建Activiti开发环境
2.1 下载Activiti
2.1.1 目录结构
2.1.2 Javadocs
2.2 环境配置检查
2.2.1 检查并安装JDK
2.2.2 检查并安装Ant
2.2.3 检查并安装Maven
2.3 配置文件介绍
2.3.1 Activiti配置文件
2.3.2 Maven配置文件
2.4 Hello World
2.4.1 最简单的流程定义
2.4.2 创建单元测试类
2.4.3 运行Hello World
2.4.4 添加业务节点
2.5 Activiti Explorer
2.5.1 配置并运行Activiti Explorer
2.5.2 使用Activiti Explorer
2.6 本章小结
第二部分 基础篇
第3章 流程设计工具
3.1 基于B/S架构的流程设计器Activiti Modeler
3.1.1 Activiti Modeler特点
3.1.2 下载signavio-core-components
3.1.3 配置打包与运行
3.1.4 Windows用户打包
3.1.5 设计请假流程
3.1.6 导出bpmn2.0.xml
3.2 在Activiti Explorer中使用Activiti Modeler
3.3 基于Eclipse插件的流程设计器Activiti Designer
3.3.1 Activiti Designer特点
3.3.2 安装Activiti Designer
3.3.3 设计流程
3.3.4 自动化
3.3.5 升级历史遗留的流程设计
3.3.6 导入Activiti Modeler设计
3.3.7 泳池与泳道
3.3.8 在Activiti Designer中使用泳道与泳池
3.4 本章小结
第4章 Activiti与BPMN 2.0规范
4.1 启动事件与结束事件
4.1.1 启动事件
4.1.2 结束事件
4.2 顺序流
4.2.1 标准顺序流
4.2.2 条件顺序流
4.3 任务
4.3.1 用户任务
4.3.2 脚本任务
4.3.3 Java Service任务
4.3.4Web Service任务
4.3.5业务规则任务
4.3.6邮件任务
4.3.7Camel任务
4.3.8Mule任务
4.3.9手动任务
4.3.10接收任务
4.3.11Shell任务
4.3.12多实例
4.4网关
4.4.1排他网关
4.4.2并行网关
4.4.3包容网关
4.4.4事件网关
4.5子流程与调用活动
4.5.1子流程
4.5.2 调用活动
4.5.3 事件子流程
4.5.4事务子流程
4.6边界与中间事件
4.6.1边界事件
4.6.2中间捕获事件
4.6.3中间抛出事件
4.7监听器
4.7.1执行监听器
4.7.2任务监听器
4.8本章小结
第三部分实战篇
第5章用户与组及部署管理
5.1用户与组
5.1.1用户
5.1.2组
5.1.3用户与组的关系
5.1.4用户任务中的用户与组
5.2部署流程资源
5.2.1classpath方式
5.2.2InputStream方式
5.2.3字符串方式
5.2.4zip/bar格式压缩包方式
5.3流程部署及资源读取
5.3.1读取已部署流程定义
5.3.2从客户端部署流程
5.3.3读取流程定义的XML
5.3.4读取流程定义的图片及图片中的中文乱码
5.3.5删除部署
5.4本章小结
第6章 任务表单
6.1动态表单
6.1.1流程定义
6.1.2单元测试
6.1.3在Activiti Explorer中运行流程
6.2实现自己的Activiti Explorer
6.2.1完善身份验证功能
6.2.2流程启动表单
6.2.3任务签收与办理
6.2.4自定义表单的字段类型
6.3 外置表单
6.3.1流程定义
6.3.2单元测试
6.3.3自定义表单引擎
6.3.4 读取流程启动表单
6.3.5任务签收与办理
6.4本章小结
第7章 Activiti与容器集成
7.1 流程引擎工厂
7.1.1 创建引擎的方式
7.1.2 配置 ProcessEngineFactory-Bean
7.2 自动部署流程定义
7.3 表达式
7.3.1 表达式基础
7.3.2 表达式示例
7.3.3 使用Spring管理变量
7.4 监听器
7.5 Spring容器集成应用实例
7.5.1 业务建模
7.5.2 启动流程
7.5.3 任务读取
7.5.4 任务办理
7.6 使用Spring注解初始化引擎
7.6.1 使用@EnableActiviti注解
7.6.2 使用Spring Boot初始化引擎
7.7 CDI模块
7.7.1 启动示例
7.7.2 引擎配置与流程定义
7.7.3 流程定义与启动
7.7.4 任务办理与完成
7.7.5 事件监听
7.8 本章小结
第8章 邮件服务
8.1 配置与测试
8.1.1 搭建邮件系统
8.1.2 通过Activiti的邮件任务发送邮件
8.1.3 使用Gmail发送邮件
8.2 与业务集成
8.2.1 即时发送邮件
8.2.2 定时发送邮件
8.3 本章小结
第9章 多实例
9.1 非用户任务
9.2 用户任务多实例
9.2.1 顺序方式办理
9.2.2 并行方式办理
9.2.3 设置结束条件
9.3 应用实例-请假会签
9.3.1 流程定义
9.3.2 任务办理
9.4 审批意见
9.5 本章小结
第10章 子流程与调用活动
10.1 子流程
10.1.1 流程定义
10.1.2 流程办理
10.1.3 分析流程数据
10.2 调用活动
10.2.1 流程定义
10.2.2 单元测试
10.2.3 流程办理
10.2.4 分析流程数据
10.3 事件子流程
10.3.1 流程定义
10.3.2 单元测试
10.4 多实例支持
10.5 本章小结
第11章 事件
11.1 启动事件
11.1.1 定时启动事件
11.1.2 消息启动事件
11.2 结束事件
11.3 边界事件
11.3.1 异常边界事件
11.3.2 消息边界事件
11.3.3 信号边界事件
11.4 中间事件
11.5 本章小结
第12章 用户任务与附件
12.1 用户任务
12.1.1 改进任务列表
12.1.2 改进任务表单
12.1.3 任务相关人员
12.1.4 反签收任务
12.1.5 候选人与候选组
12.1.6 改进任务查询
12.2 子任务
12.3 手动任务
12.4 附件
12.5 改进意见列表
12.6 任务委派
12.6.1 单元测试
12.6.2 任务表单中的委派
12.7 本章小结
第13章 流程数据查询与跟踪
13.1 Query API简介
13.2 运行时数据查询
13.2.1 任务查询
13.2.2 查询参与的流程
13.3 流程图跟踪
13.4 历史数据查询
13.4.1 查询历史活动及表单
13.4.2 查询已归档流程
13.5 基于MyBatis的CustomSql查询
13.5.1 定义Mapper接口
13.5.2 展示数据
13.6 本章小结
第14章 管理员特性
14.1 流程状态
14.1.1 流程定义状态
14.1.2 作业查询
14.1.3 流程实例状态
14.2 作业管理
14.2.1 作业执行原理
14.2.2 作业执行异常
14.2.3 独占与异步
14.3 删除流程实例
14.4 流程定义权限控制
14.4.1 权限拦截
14.4.2 设置候选启动人和候选启动组
14.4.3 读取候选启动数据
14.5 读取引擎属性
14.6 数据库查询
14.7 用户与组
14.8 本章小结
第四部分 高级篇
第15章 集成WebService
15.1发布WebService服务
15.2在流程中定义WebService任务
15.3 在流程中调用WebService
15.4本章小结
第16章 集成规则引擎
16.1 定义流程与规则
16.1.1部署规则文件
16.1.2单元测试
16.2本章小结
第17章 集成JPA
17.1配置JPA
17.1.1Standalone模式
17.1.2Spring模式
17.2JPA版本的请假流程
17.2.1启动流程时持久化JPA实体
17.2.2更改JPA实体属性
17.2.3清理历史表单数据
17.3本章小结
第18章 集成ESB
18.1Camel简介与快速入门
18.2在流程中调用Camel
18.2.1Camel依赖及配置
18.2.2定义Camel路由
18.2.3执行单元测试
18.2.4URI输入参数
18.2.5URI输出参数
18.3异步Camel任务
18.4在Camel中启动流程
18.5集成Mule
18.5.1Mule快速入门
18.5.2Mule、Spring与Activiti集成
18.5.3在流程中调用Mule
18.6本章小结
第19章 统一身份管理
19.1一套典型的身份系统
19.2引擎身份接口方式
19.3用视图代替物理表
19.4集成LDAP
19.5本章小结
第20章 REST服务
20.1通信协议简介
20.2REST API概述
20.3发布REST API
20.3.1通过浏览器访问
20.3.2通过HttpClient访问
20.3.3通过Restlet访问
20.3.4通过Apache CXF访问
20.4集成REST API
20.4.1依赖及配置文件
20.4.2通过Ajax访问
20.5完整示例
20.5.1部署流程
20.5.2查询Deployment
20.5.3查询流程定义
20.5.4启动流程
20.5.5读取流程变量
20.5.6查询任务
20.5.7签收任务
20.5.8完成任务
20.5.9查询历史数据
20.6集成流程图跟踪组件Diagram Viewer
20.6.1准备资源文件
20.6.2准备配置文件
20.6.3访问Diagram Viewer跟踪流程
20.7基于REST服务搭建流程中心
20.7.1基础架构
20.7.2表单模式选型
20.7.3统一的组件
20.7.4事务管理
20.8集成流程设计器Activiti Modeler
20.8.1准备资源文件
20.8.2准备配置文件
20.8.3更改默认配置
20.8.4创建模型
20.8.5导出模型的流程XML
20.8.6把模型转换为流程定义
20.8.7把流程定义转换为模型
20.8.8删除模型
20.9本章小结
第21章 入侵Activiti
21.1解析BPMN文件
21.1.1BpmnModel对象与XML之间的转换
21.1.2动态创建流程
21.1.3BPMN解析处理器
21.2全局事件处理器
21.2.1定义事件处理器
21.2.2处理捕获的事件
21.2.3事件处理器的异常处理
21.2.4动态注册事件处理器
21.2.5任务自动转办
21.2.6事件日志
21.3命令与拦截器
21.3.1命令与拦截器运行机制
21.3.2自定义命令
21.3.3命令拦截器
21.4流程虚拟机-PVM
21.4.1简述PVM
21.4.2Hello PVM
21.4.3PVM进阶
21.5本章小结
很高兴看到他的《Activiti实战》一书将为Activiti 的中国使用者及开发者提供非常多的重要价值。在Activiti项目方面,Henry Yan具有非常专业的背景经验,在此,我向各位包括已经在使用Activiti的开发者及Activiti新手极力推荐此书。
——Tijs Rademakers,Activiti 项目负责人