资源说明:第一章、简介 ........................................................................................................................................................................... 1
1.1 许可 ............................................................................................................................................................................ 1
1.2 下载 ............................................................................................................................................................................ 1
1.3 源码 ............................................................................................................................................................................ 1
1.4 所需的软件 ................................................................................................................................................................ 1
1.4.1 JDK 5+ ............................................................................................................................................................... 1
1.4.2 Ant 1.8.1+ ......................................................................................................................................................... 1
1.4.3 Eclipse 3.6.2 ...................................................................................................................................................... 1
1.5 报告问题 .................................................................................................................................................................... 1
1.6 试验性的特性 ............................................................................................................................................................ 1
1.7 内部实现类 ................................................................................................................................................................ 2
第二章、入门 ........................................................................................................................................................................... 3
2.1 一分钟版 .................................................................................................................................................................... 3
2.2 演示设置 .................................................................................................................................................................... 3
2.3 workspace文件夹下的示例项目 ............................................................................................................................... 4
2.4 类库依赖 .................................................................................................................................................................... 4
2.5 Eclipse设置 ................................................................................................................................................................. 5
2.6 查看数据库 ................................................................................................................................................................ 7
2.7 数据库表的命名说明 ................................................................................................................................................ 7
第三章、配置 ........................................................................................................................................................................... 8
3.1 创建ProcessEngine .................................................................................................................................................... 8
3.2 ProcessEngineConfiguration bean ............................................................................................................................... 9
3.3 数据库配置 ................................................................................................................................................................ 9
3.4 作业执行器的激活 .................................................................................................................................................. 10
3.5 邮件服务器的配置 .................................................................................................................................................. 11
3.6 历史的配置 .............................................................................................................................................................. 11
3.7 在表达式、脚本中公布配置的beans .................................................................................................................... 11
3.8 支持的数据库 .......................................................................................................................................................... 11
3.9 创建数据库表 .......................................................................................................................................................... 11
3.10 数据库更新 ............................................................................................................................................................ 12
第四章、Spring的集成 .......................................................................................................................................................... 13
4.1 ProcessEngineFactoryBean ........................................................................................................................................ 13
4.2 事务 .......................................................................................................................................................................... 13
4.3 表达式 ...................................................................................................................................................................... 16
4.4 自动资源部署 .......................................................................................................................................................... 17
4.5 单元测试 .................................................................................................................................................................. 17
第五章、API............................................................................................................................................................................ 19
5.1 引擎API .................................................................................................................................................................... 19
5.2 异常策略 .................................................................................................................................................................. 19
5.3 单元测试 .................................................................................................................................................................. 20
5.4 调试单元测试 .......................................................................................................................................................... 21
5.5 web应用程序中的工作流引擎 ............................................................................................................................... 23
5.6 流程虚拟机(PVM)API ......................................................................................................................................... 24
5.7 表达式 ...................................................................................................................................................................... 25
小觑夜漫酒作伴,破晓黎明当笑言
ii
第六章、部署 ......................................................................................................................................................................... 26
6.1 业务归档文件 .......................................................................................................................................................... 26
6.1.1 编程式部署 ................................................................................................................................................... 26
6.1.2 使用ant部署 ................................................................................................................................................ 26
6.1.3 使用Activiti Explorer部署 ........................................................................................................................... 27
6.2 外部资源 .................................................................................................................................................................. 27
6.2.1 Java类 ............................................................................................................................................................ 27
6.2.2 在流程中使用Spring beans ......................................................................................................................... 28
6.2.3 创建独立应用 ............................................................................................................................................... 28
6.3 流程定义的版本 ...................................................................................................................................................... 28
6.4 提供流程图 .............................................................................................................................................................. 29
6.5 生成流程图 .............................................................................................................................................................. 29
第七章、BPMN ....................................................................................................................................................................... 31
7.1 BPMN是什么 ............................................................................................................................................................ 31
7.2 示例 .......................................................................................................................................................................... 31
7.3 定义流程 .................................................................................................................................................................. 31
7.4 入门:10分钟指南 ................................................................................................................................................. 32
7.4.1 先决条件 ....................................................................................................................................................... 32
7.4.2 目标 ............................................................................................................................................................... 32
7.4.3 用例 ............................................................................................................................................................... 33
7.4.4 流程图 ........................................................................................................................................................... 33
7.4.5 XML的描述 .................................................................................................................................................... 33
7.4.6 启动流程实例 ............................................................................................................................................... 34
7.4.7 任务列表 ....................................................................................................................................................... 36
7.4.8 认领任务 ....................................................................................................................................................... 37
7.4.9 完成任务 ....................................................................................................................................................... 38
7.4.10 结束流程 ..................................................................................................................................................... 39
7.4.11 代码综述 ..................................................................................................................................................... 39
7.4.12 未来改进 ..................................................................................................................................................... 41
7.5 BPMN 2.0 结构 ......................................................................................................................................................... 41
7.5.1 自定义扩展 ................................................................................................................................................... 41
7.5.2 事件 ............................................................................................................................................................... 42
定时器事件的定义 ......................................................................................................................................... 42
7.5.3 启动事件 ....................................................................................................................................................... 43
7.5.4 空启动事件 ................................................................................................................................................... 44
描述 ................................................................................................................................................................. 44
图形化符号 ..................................................................................................................................................... 44
XML表示 ......................................................................................................................................................... 44
7.5.5 定时器启动事件 ........................................................................................................................................... 44
描述 ................................................................................................................................................................. 44
图形化符号 ..................................................................................................................................................... 44
XML表示 ......................................................................................................................................................... 45
7.5.6 终止事件 ....................................................................................................................................................... 45
7.5.7 空终止事件 ................................................................................................................................................... 45
描述 ................................................................................................................................................................. 45
图形化符号 ..................................................................................................................................................... 45
小觑夜漫酒作伴,破晓黎明当笑言
iii
XML表示 ......................................................................................................................................................... 46
7.5.8 异常终止事件 ............................................................................................................................................... 46
描述 ................................................................................................................................................................. 46
图形化符号 ..................................................................................................................................................... 46
XML表示 ......................................................................................................................................................... 46
7.5.9 顺序流 ........................................................................................................................................................... 47
描述 ................................................................................................................................................................. 47
图形化符号 ..................................................................................................................................................... 47
XML表示 ......................................................................................................................................................... 47
7.5.10 条件顺序流 ................................................................................................................................................. 47
描述 ................................................................................................................................................................. 47
图形化符号 ..................................................................................................................................................... 48
XML表示 ......................................................................................................................................................... 48
7.5.11 默认顺序流 ................................................................................................................................................. 49
描述 ................................................................................................................................................................. 49
图形化符号 ..................................................................................................................................................... 49
XML表示 ......................................................................................................................................................... 49
7.5.12 分支 ............................................................................................................................................................. 50
7.5.13 排他分支 ..................................................................................................................................................... 50
描述 ................................................................................................................................................................. 50
图形化符号 ..................................................................................................................................................... 51
XML表示 ......................................................................................................................................................... 51
7.5.14 并行分支 ..................................................................................................................................................... 52
描述 ................................................................................................................................................................. 52
图形化符号 ..................................................................................................................................................... 52
XML表示 ......................................................................................................................................................... 52
7.5.15 包容分支 ..................................................................................................................................................... 54
描述 ................................................................................................................................................................. 54
图形化符号 ..................................................................................................................................................... 55
XML表示 ......................................................................................................................................................... 55
7.5.16 用户任务 ..................................................................................................................................................... 56
描述 ................................................................................................................................................................. 56
图形化符号 ..................................................................................................................................................... 57
XML表示 ......................................................................................................................................................... 57
到期时间 ......................................................................................................................................................... 57
用户的分配 ..................................................................................................................................................... 57
Activiti对于任务分配的扩展 ......................................................................................................................... 58
7.5.17 脚本任务 ..................................................................................................................................................... 60
描述 ................................................................................................................................................................. 60
图形化符号 ..................................................................................................................................................... 60
XML表示 ......................................................................................................................................................... 60
脚本中的变量 ................................................................................................................................................. 61
脚本的结果 ..................................................................................................................................................... 61
7.5.18 Java服务任务 .............................................................................................................................................. 61
描述 ................................................................................................................................................................. 61
图形化符号 ..................................................................................................................................................... 62
小觑夜漫酒作伴,破晓黎明当笑言
iv
XML表示 ......................................................................................................................................................... 62
实现 ................................................................................................................................................................. 63
字段的注入 ..................................................................................................................................................... 63
服务任务的结果 ............................................................................................................................................. 65
处理异常 ......................................................................................................................................................... 65
7.5.19 WebService任务 .......................................................................................................................................... 66
描述 ................................................................................................................................................................. 66
图形化符号 ..................................................................................................................................................... 66
XML表示 ......................................................................................................................................................... 66
WebService任务的IO规范 ........................................................................................................................... 67
服务任务的数据输入关系 ............................................................................................................................. 68
服务任务的数据输出关系 ............................................................................................................................. 68
7.5.20 业务规则任务 ............................................................................................................................................. 69
描述 ................................................................................................................................................................. 69
图形化符号 ..................................................................................................................................................... 69
XML表示 ......................................................................................................................................................... 69
7.5.21 邮件任务 ..................................................................................................................................................... 70
Mail服务器的配置 ......................................................................................................................................... 70
定义邮件任务 ................................................................................................................................................. 70
用法举例 ......................................................................................................................................................... 71
7.5.22 Mule任务 ..................................................................................................................................................... 72
定义Mule任务 ............................................................................................................................................... 72
用法举例 ......................................................................................................................................................... 72
7.5.23 手动任务 ..................................................................................................................................................... 73
描述 ................................................................................................................................................................. 73
图形化符号 ..................................................................................................................................................... 73
XML表示 ......................................................................................................................................................... 73
7.5.24 Java接收任务 .............................................................................................................................................. 73
描述 ................................................................................................................................................................. 73
图形化符号 ..................................................................................................................................................... 74
XML表示 ......................................................................................................................................................... 74
7.5.25 执行监听器 ................................................................................................................................................. 74
执行监听器上的字段注入 ............................................................................................................................. 76
7.5.26 任务监听器 ................................................................................................................................................. 77
7.5.27 多实例(for each) .................................................................................................................................... 78
描述 ................................................................................................................................................................. 78
图形化符号 ..................................................................................................................................................... 79
XML表示 ......................................................................................................................................................... 79
边界事件与多实例 ......................................................................................................................................... 80
7.5.28 边界事件 ..................................................................................................................................................... 81
7.5.29 定时器边界事件 ......................................................................................................................................... 81
描述 ................................................................................................................................................................. 81
图形化符号 ..................................................................................................................................................... 81
XML表示 ......................................................................................................................................................... 81
使用边界事件的已知问题 ............................................................................................................................. 82
7.5.30 异常边界事件 ............................................................................................................................................. 83
小觑夜漫酒作伴,破晓黎明当笑言
v
描述 ................................................................................................................................................................. 83
图形化符号 ..................................................................................................................................................... 84
XML表示 ......................................................................................................................................................... 84
示例 ................................................................................................................................................................. 84
7.5.31 中间捕获事件 ............................................................................................................................................. 85
7.5.32 定时器中间捕获事件 ................................................................................................................................. 85
描述 ................................................................................................................................................................. 85
图形化符号 ..................................................................................................................................................... 85
XML表示 ......................................................................................................................................................... 86
7.5.33 子流程 ......................................................................................................................................................... 86
描述 ................................................................................................................................................................. 86
图形化符号 ..................................................................................................................................................... 86
XML表示 ......................................................................................................................................................... 87
7.5.34 调用活动(子过程) ................................................................................................................................. 88
描述 ................................................................................................................................................................. 88
图形化符号 ..................................................................................................................................................... 88
XML表示 ......................................................................................................................................................... 88
传递变量 ......................................................................................................................................................... 88
示例 ................................................................................................................................................................. 89
7.6 异步的延续 .............................................................................................................................................................. 90
第八章、表单 ......................................................................................................................................................................... 92
8.1 表单属性 .................................................................................................................................................................. 92
8.2 外部的表单渲染 ...................................................................................................................................................... 95
第九章、JPA ............................................................................................................................................................................ 96
9.1 要求 .......................................................................................................................................................................... 96
9.2 配置 .......................................................................................................................................................................... 96
9.3 用法 .......................................................................................................................................................................... 97
9.3.1 简单示例 ....................................................................................................................................................... 97
9.3.2 查询JPA流程变量 ........................................................................................................................................ 99
9.3.3 使用Spring beans和JPA的高级示例 ......................................................................................................... 99
第十章、历史 ....................................................................................................................................................................... 102
10.1 查询历史 .............................................................................................................................................................. 102
10.1.1 HistoricProcessInstanceQuery .................................................................................................................... 102
10.1.2 HistoricActivityInstanceQuery .................................................................................................................... 102
10.1.3 HistoricDetailQuery .................................................................................................................................... 103
10.1.4 HistoricTaskInstanceQuery ......................................................................................................................... 104
10.2 历史的配置 .......................................................................................................................................................... 104
10.3 审查目的的历史 .................................................................................................................................................. 105
第十一章、Eclipse Designer ................................................................................................................................................. 106
11.1 安装 ...................................................................................................................................................................... 106
11.2 Activiti Designer编辑器的特性 ............................................................................................................................ 107
11.3 Activiti Designer的BPMN特性 ............................................................................................................................ 109
11.4 Activiti Designer的部署特性 ................................................................................................................................ 113
11.5 扩展Activiti Designer ........................................................................................................................................... 114
11.5.1 定制画板 ................................................................................................................................................... 114
11.5.1.1 扩展的设置(Eclipse/Maven) .................................................................................................... 115
小觑夜漫酒作伴,破晓黎明当笑言
vi
11.5.1.2 将扩展应用到Activiti Designer ..................................................................................................... 117
11.5.1.3 向画板添加形状 ............................................................................................................................ 119
11.5.1.4 属性的类型 .................................................................................................................................... 122
11.5.1.5 禁用画板中默认形状 .................................................................................................................... 125
11.5.2 校验图形和导出到自定义的输出格式 ................................................................................................... 127
11.5.2.1 创建ProcessValidator扩展 ........................................................................................................... 128
11.5.2.2 创建ExportMarshaller扩展 .......................................................................................................... 129
第十二章、Activiti Explorer ................................................................................................................................................. 131
12.1 用例概述 .............................................................................................................................................................. 131
12.2 用例 ...................................................................................................................................................................... 132
12.3 启动流程实例 ...................................................................................................................................................... 132
12.4 我的实例 .............................................................................................................................................................. 132
12.5 管理 ...................................................................................................................................................................... 133
12.6 修改数据库 .......................................................................................................................................................... 135
第十三章、Activiti的附加组件 ........................................................................................................................................... 136
13.1 Cycle....................................................................................................................................................................... 136
13.2 基于Signavio核心组件的Activiti Modeler ........................................................................................................ 136
第十四章、REST API ............................................................................................................................................................. 137
14.1 仓库 ...................................................................................................................................................................... 137
14.1.1 上传部署 ................................................................................................................................................... 137
14.1.2 获取部署 ................................................................................................................................................... 138
14.1.3 获取部署资源 ........................................................................................................................................... 138
14.1.4 删除部署 ................................................................................................................................................... 138
14.1.5 删除多个部署 ........................................................................................................................................... 139
14.2 引擎 ...................................................................................................................................................................... 139
14.2.1 获取流程引擎 ........................................................................................................................................... 139
14.3 流程 ...................................................................................................................................................................... 140
14.3.1 列出流程定义 ........................................................................................................................................... 140
14.3.2 获得流程定义 ........................................................................................................................................... 140
14.3.3 获得流程定义表单 ................................................................................................................................... 141
14.3.4 启动流程实例 ........................................................................................................................................... 141
14.3.5 列出流程实例 ........................................................................................................................................... 142
14.3.6 获得流程实例图 ....................................................................................................................................... 143
14.4 任务 ...................................................................................................................................................................... 143
14.4.1 获取任务概述 ........................................................................................................................................... 143
14.4.2 列出任务 ................................................................................................................................................... 143
14.4.3 获得任务 ................................................................................................................................................... 144
14.4.4 获得任务表单 ........................................................................................................................................... 145
14.4.5 执行任务操作 ........................................................................................................................................... 145
14.4.6 列出表单属性 ........................................................................................................................................... 145
14.5 身份 ...................................................................................................................................................................... 146
14.5.1 登陆 ........................................................................................................................................................... 146
14.5.2 获得用户 ................................................................................................................................................... 146
14.5.3 列出用户的组 ........................................................................................................................................... 146
14.5.4 获取组 ....................................................................................................................................................... 147
14.5.5 列出组内的用户 ....................................................................................................................................... 147
小觑夜漫酒作伴,破晓黎明当笑言
vii
14.6 管理 ...................................................................................................................................................................... 148
14.6.1 列出作业 ................................................................................................................................................... 148
14.6.2 获得作业 ................................................................................................................................................... 149
14.6.3 执行作业 ................................................................................................................................................... 149
14.6.4 执行多个作业 ........................................................................................................................................... 149
14.6.5 列出数据库表 ........................................................................................................................................... 150
14.6.6 获得表的元数据 ....................................................................................................................................... 150
14.6.7 获得表数据 ............................................................................................................................................... 150
第十五章、Cdi集成 ............................................................................................................................................................. 152
15.1 设置activiti-cdi .................................................................................................................................................... 152
15.1.1 查找流程引擎 ........................................................................................................................................... 152
15.1.2 配置流程引擎 ........................................................................................................................................... 153
15.1.3 部署流程 ................................................................................................................................................... 154
15.2 存在Cdi的上下文相关的流程的执行 ............................................................................................................... 154
15.2.1 将会话与流程实例关联 ........................................................................................................................... 154
15.2.2 声明式地控制流程 ................................................................................................................................... 155
15.2.3 在流程中引用Bean .................................................................................................................................. 155
15.2.4 使用@BusinessProcessScoped注解的bean............................................................................................ 156
15.2.5 注入流程变量 ........................................................................................................................................... 156
15.2.6 接收流程事件 ........................................................................................................................................... 156
15.2.7 附加特性 ................................................................................................................................................... 157
15.3 编写测试 .............................................................................................................................................................. 157
15.4 已知的局限性 ...................................................................................................................................................... 158
附录 ....................................................................................................................................................................................... 159
附录一 认识ant构建脚本 .......................................................................................................................................... 159
附录二 认识发布文件结构 ......................................................................................................................................... 160
翻译日程 ............................................................................................................................................................................... 161
关于文档 ............................................................................................................................................................................... 162
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。