目 录 | 1
目 录
第1 章 工作流基础......................................................................................................2
1.1 工作流概念......................................................................................................... 2
1.1.1 工作流管理思想之于企业现代化管理......................................................... 2
1.1.2 工作流技术在企业中的应用....................................................................... 5
1.1.3 如何从一个开发者的角度看工作流技术...................................................... 6
1.2 工作流管理系统的发展历程................................................................................. 9
1.2.1 工作流管理系统参考模型.........................................................................11
1.2.2 BPM ...................................................................................................... 15
1.3 开源工作流选型................................................................................................ 16
1.4 jBPM ................................................................................................................ 19
1.4.1 jBPM 前世今生....................................................................................... 19
1.4.2 关于jBPM4 您需要知道的....................................................................... 19
1.5 小结................................................................................................................. 23
第2 章 安装和配置jBPM4 ...........................................................................................24
2.1 jBPM4 安装先决条件......................................................................................... 24
2.2 快速开始吧....................................................................................................... 26
2.3 安装脚本详解.................................................................................................... 27
2.3.1 关于配置文件......................................................................................... 30
2.3.2 关于依赖库............................................................................................. 31
2.4 安装到JBoss ..................................................................................................... 31
2.5 安装到Tomcat ................................................................................................... 32
2.6 基于Web 的Signavio 流程设计器....................................................................... 33
2.6.1 jBPM Web 流程设计器简介...................................................................... 33
2.6.2 独立安装Signavio ................................................................................... 34
2.6.3 配置Signavio.......................................................................................... 34
2.7 用户自定义jBPM Web 应用程序......................................................................... 35
2.8 安装jBPM 数据库............................................................................................. 35
2.8.1 新数据库安装......................................................................................... 36
2.8.2 升级旧的数据库...................................................................................... 36
2 | jBPM 工作流应用开发指南
2.9 安装图形化流程设计器(GPD) ........................................................................ 37
2.9.1 获取Eclipse ............................................................................................ 37
2.9.2 在Eclipse 中安装GPD 插件..................................................................... 37
2.9.3 配置jBPM 运行环境............................................................................... 38
2.9.4 添加jPDL4 Schema 校验.......................................................................... 41
2.9.5 导入和使用范例...................................................................................... 41
2.10 例程:jBPM Hello World........................................................................... 43
2.11 小结................................................................................................................ 45
第3 章 使用jBPM 图形化流程设计器(GPD)设计流程....................................................46
3.1 创建一个新流程................................................................................................ 47
3.2 编辑流程定义源................................................................................................ 49
3.3 例程:设计一个“复杂的”业务流程.................................................................. 49
3.4 小结................................................................................................................. 53
第4 章 把流程部署到服务器上去..................................................................................54
4.1 部署流程定义和资源文件................................................................................... 54
4.2 部署流程Java 类的3 个方法.............................................................................. 57
4.3 例程:部署业务流程定义................................................................................... 58
4.4 小结................................................................................................................. 61
第5 章 使用jBPM4 Service API 控制流程......................................................................62
5.1 流程定义、流程实例和执行(executions)的概念................................................ 62
5.2 流程引擎API .................................................................................................... 64
5.3 利用API 部署流程............................................................................................. 67
5.4 通过API 删除已部署的流程............................................................................... 69
5.5 使用API 发起新的流程实例............................................................................... 69
5.5.1 发起流程实例的常规方法........................................................................ 70
5.5.2 指定业务键(ProcessInstance Key)发起流程实例..................................... 70
5.5.3 指定变量(variables)发起流程实例........................................................ 71
5.6 唤醒一个等待状态的执行(executions) ............................................................. 71
5.7 任务(task)服务API........................................................................................ 72
5.8 历史服务API .................................................................................................... 75
5.9 管理服务API .................................................................................................... 76
5.10 查询服务API................................................................................................... 77
5.11 例程:利用jBPM Service API 完成流程实例...................................................... 78
5.12 小结................................................................................................................ 80
第6 章 掌握jBPM 流程定义语言...................................................................................81
目 录 | 3
6.1 process(流程) ................................................................................................ 82
6.2 流转控制活动.................................................................................................... 84
6.2.1 start(开始活动) ................................................................................... 85
6.2.2 state(状态活动) ................................................................................... 86
6.2.3 decision(判断活动).............................................................................. 89
6.2.4 fork – join(分支/聚合活动) ................................................................... 97
6.2.5 end(结束活动) .................................................................................. 102
6.2.6 task(人工任务活动)........................................................................... 107
6.2.7 sub-process(子流程活动).................................................................... 120
6.2.8 自定义活动........................................................................................... 132
6.3 自动活动......................................................................................................... 134
6.3.1 java(Java 程序活动)........................................................................... 135
6.3.2 script(脚本活动)................................................................................ 139
6.3.3 hql(Hibernate 查询语言活动).............................................................. 144
6.3.4 sql(结构化查询语言活动) .................................................................. 147
6.3.5 mail(邮件活动) ................................................................................. 149
6.4 事件............................................................................................................... 153
6.4.1 事件监听.............................................................................................. 155
6.4.2 事件传播.............................................................................................. 157
6.4.3 处理异常事件....................................................................................... 159
6.5 异步执行......................................................................................................... 160
6.5.1 异步活动.............................................................................................. 162
6.5.2 异步分支/聚合...................................................................................... 164
6.6 用户代码......................................................................................................... 166
6.6.1 用户代码的定义.................................................................................... 166
6.6.2 用户代码的类加载................................................................................ 168
6.7 小结............................................................................................................... 170
第7 章 流程变量(variables) ...................................................................................171
7.1 变量作用域..................................................................................................... 173
7.2 变量类型......................................................................................................... 174
7.3 变量的自动更新和序列化................................................................................. 175
7.4 例程:用变量去控制一个流程的运行................................................................ 177
7.5 小结............................................................................................................... 179
第8 章 流程脚本......................................................................................................182
8.1 Java 统一表达式语言(jUEL) ......................................................................... 182
4 | jBPM 工作流应用开发指南
8.1.1 语法特点.............................................................................................. 183
8.1.2 值和方法表达式.................................................................................... 184
8.1.3 隐式对象.............................................................................................. 187
8.1.4 运算符和保留字.................................................................................... 188
8.1.5 一些经典EL 表达式的例子.................................................................... 190
8.2 例程:用脚本去控制一个流程的运行................................................................ 192
8.3 小结............................................................................................................... 194
第9 章 jBPM4 扩展研发先决条件................................................................................195
9.1 深入应用jBPM4 所需要知道的......................................................................... 195
9.1.1 如果您的业务基于复杂的规则,在jBPM 中加入Drools 吧...................... 195
9.1.2 抉择,是否使用BPEL........................................................................... 196
9.2 Maven 仓库和Java 依赖库................................................................................ 198
9.3 小结............................................................................................................... 199
第10 章 深入jPDL 和jBPM Service API ......................................................................200
10.1 timer(定时器)能为您做什么........................................................................ 200
10.1.1 持续时间表达式.................................................................................. 201
10.1.2 工作日历............................................................................................ 201
10.1.3 定时转移............................................................................................ 203
10.1.4 定时事件............................................................................................ 204
10.1.5 工作日历定时...................................................................................... 206
10.1.6 定时重复............................................................................................ 207
10.2 使用group 活动编组流程................................................................................ 208
10.3 如何在活动中调用EJB 方法........................................................................... 213
10.4 使用jms 活动................................................................................................ 214
10.4.1 模拟JMS 服务.................................................................................... 216
10.4.2 JMS 文本消息..................................................................................... 218
10.4.3 JMS Object 消息.................................................................................. 219
10.4.4 JMS Map 消息..................................................................................... 221
10.5 历史会话监听链............................................................................................. 222
10.6 自定义Web 任务表单..................................................................................... 224
10.6.1 基本思路............................................................................................ 224
10.6.2 表单格式............................................................................................ 225
10.7 流程实例的自动迁移...................................................................................... 227
10.7.1 简单的流程实例迁移........................................................................... 229
10.7.2 终止流程实例运行的迁移.................................................................... 231
目 录 | 5
10.7.3 应用活动映射的迁移........................................................................... 233
10.7.4 自定义迁移处理器............................................................................... 235
10.8 小结.............................................................................................................. 238
第11 章 升级jBPM3 到jBPM4 ...................................................................................239
11.1 你所要知道的升级局限性............................................................................... 240
11.2 流程定义转换工具......................................................................................... 241
11.2.1 命令行执行......................................................................................... 241
11.2.2 Java 编码执行...................................................................................... 242
11.3 jBPM3 到jBPM4 的语义变更及翻译................................................................ 243
11.4 小结.............................................................................................................. 245
第12 章 流程虚拟机原理...........................................................................................246
12.1 PVM 的架构.................................................................................................. 246
12.2 PVM 的实现.................................................................................................. 249
12.3 小结.............................................................................................................. 252
第13 章 jBPM4 的设计思想.......................................................................................253
13.1 API 设计....................................................................................................... 253
13.1.1 活动API............................................................................................. 255
13.1.2 事件监听API ...................................................................................... 255
13.2 执行环境设计................................................................................................ 256
13.3 命令设计....................................................................................................... 257
13.4 服务设计....................................................................................................... 258
13.5 历史流程处理原理......................................................................................... 261
13.6 数据持久化设计............................................................................................. 262
13.6.1 jBPM4 流程定义资源和实例运行时数据表............................................ 263
13.6.2 jBPM4 流程历史数据表....................................................................... 264
13.6.3 jBPM4 身份认证数据表....................................................................... 265
13.6.4 jBPM4 引擎属性数据表....................................................................... 266
13.7 例程:扩展jBPM4 的API 满足客户化的需求.................................................. 267
13.8 小结.............................................................................................................. 269
第14 章 随需而配jBPM4 ..........................................................................................271
14.1 配置文件设计概要......................................................................................... 272
14.2 配置工作日历................................................................................................ 273
14.3 配置身份认证组件(组织适配器) ................................................................. 273
14.4 小结.............................................................................................................. 276
6 | jBPM 工作流应用开发指南
第15 章 异步工作执行器(JobExecutor)....................................................................277
15.1 设计原理....................................................................................................... 277
15.2 配置使用....................................................................................................... 279
15.3 小结.............................................................................................................. 280
第16 章 深入jBPM4 电子邮件支持.............................................................................281
16.1 电子邮件的产生............................................................................................. 281
16.2 电子邮件服务器............................................................................................. 284
16.3 电子邮件扩展................................................................................................ 286
16.4 小结.............................................................................................................. 288
第17 章 系统日志....................................................................................................289
17.1 配置日志....................................................................................................... 289
17.2 日志输出级别................................................................................................ 291
17.3 Java Logging API 日志.................................................................................... 291
17.4 利用持久化层日志进行调试............................................................................ 293
17.5 小结.............................................................................................................. 294
第18 章 jBPM4 与Spring 框架集成.............................................................................295
18.1 集成的目标................................................................................................... 296
18.2 为集成配置jBPM4......................................................................................... 296
18.3 为集成配置Spring.......................................................................................... 298
18.4 使用.............................................................................................................. 300
18.5 测试.............................................................................................................. 301
18.6 小结.............................................................................................................. 301
第19 章 jBPM4 与JBoss 应用服务器集成....................................................................302
19.1 流程定义打包部署......................................................................................... 302
19.2 在JBoss 企业级编程模型中使用jBPM4........................................................... 303
19.3 小结.............................................................................................................. 305
第20 章 中国特色工作流的jBPM 实现.........................................................................306
20.1 退回.............................................................................................................. 307
20.2 取回.............................................................................................................. 312
20.3 会签.............................................................................................................. 317
20.4 委派.............................................................................................................. 325
20.5 自由流.......................................................................................................... 330
20.6 小结.............................................................................................................. 331
附录A jBPM 术语....................................................................................................333
· · · · · · (
收起)