第一篇jBPM工作流开发基础 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.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 HelloWorld 43
2.11小结 45
第3章 使用jBPM图形化流程设计器设计流程 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流程定义、流程实例和执行的概念 62
5.2流程引擎API 64
5.3利用API部署流程 67
5.4通过API删除已部署的流程 69
5.5使用API发起新的流程实例 69
5.5.1发起流程实例的常规方法 70
5.5.2指定业务键发起流程实例 70
5.5.3指定变量发起流程实例 71
5.6唤醒一个等待状态的执行 71
5.7任务服务API 72
5.8历史服务API 75
5.9管理服务API 76
5.10查询服务API 77
5.11例程:利用jBPM Service API完成流程实例 78
5.12小结 80
第6章 掌握1BPM流程定义语言 81
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章 流程变量 171
7.1变量作用域 173
7.2变量类型 174
7.3变量的自动更新和序列化 175
7.4例程:用变量去控制一个流程的运行 177
7.5小结 179
第8章 流程脚本 182
8.1 Java统一表达式语言 182
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
第二篇 定制属于自己的流程——深入jBPM4扩展研发 195
第9章jBPM4扩展研发先决条件 196
9.1深入应用jBPM4所需要知道的 196
9.1.1如果您的业务基于复杂的规则,在jBPM中加入Drools吧 196
9.1.2抉择,是否使用BPEL 197
9.2 Maven仓库和Java依赖库 199
9.3小结 200
第10章 深入jPDL和jBPM Service API 201
10.1 timer(定时器)能为您做什么 201
10.1.1持续时间表达式 202
10.1.2工作日历 202
10.1.3定时转移 204
10.1.4定时事件 205
10.1.5工作日历定时 207
10.1.6定时重复 208
10.2使用group活动编组流程 209
10.3如何在活动中调用EJB方法 214
10.4使用jms活动 215
10.4.1模拟JMS服务 217
10.4.2 JMS文本消息 219
10.4.3 JMS Object消息 220
10.4.4 JMS Map消息 222
10.5历史会话监听链 223
10.6自定义Web任务表单 225
10.6.1基本思路 225
10.6.2表单格式 226
10.7流程实例的自动迁移 228
10.7.1简单的流程实例迁移 230
10.7.2终止流程实例运行的迁移 232
10.7.3应用活动映射的迁移 234
10.7.4自定义迁移处理器 236
10.8小结 239
第11章 升级jBPM3到jBPM4 240
11.1你所要知道的升级局限性 241
11.2流程定义转换工具 242
11.2.1命令行执行 242
11.2.2 Java编码执行 243
11.3 jBPM3到jBPM4的语义变更及翻译 244
11.4小结 246
第12章 流程虚拟机原理 247
12.1 PVM的架构 247
12.2 PVM的实现 250
12.3小结 253
第13章jBPM4的设计思想 254
13.1 API设计 254
13.1.1活动API 256
13.1.2事件监听API 256
13.2执行环境设计 257
13.3命令设计 258
13.4服务设计 259
13.5历史流程处理原理 262
13.6数据持久化设计 263
13.6.1 jBPM4流程定义资源和实例运行时数据表 264
13.6.2 jBPM4流程历史数据表 265
13.6.3 jBPM4身份认证数据表 266
13.6.4 jBPM4引擎属性数据表 267
13.7例程:扩展jBPM4的API满足客户化的需求 268
13.8小结 270
第14章 随需而配jBPM4 272
14.1配置文件设计概要 273
14.2配置工作日历 274
14.3配置身份认证组件(组织适配器) 274
14.4小结 277
第15章 异步工作执行器 278
15.1设计原理 278
15.2配置使用 280
15.3小结 281
第16章 深入jBPM4电子邮件支持 282
16.1电子邮件的产生 282
16.2电子邮件服务器 285
16.3电子邮件扩展 287
16.4小结 289
第17章 系统日志 290
17.1配置日志 290
17.2日志输出级别 292
17.3 Java Logging API日志 292
17.4利用持久化层日志进行调试 294
17.5小结 295
第18章jBPM4与Spring框架集成 296
18.1集成的目标 297
18.2为集成配置jBPM4 297
18.3为集成配置Spring 299
18.4使用 301
18.5测试 302
18.6小结 302
第19章jBPM4与J Boss应用服务器集成 303
19.1流程定义打包部署 303
19.2在JBoss企业级编程模型中使用jBPM4 304
19.3小结 306
第20章 中国特色工作流的jBPM实现 307
20.1退回 308
20.2取回 313
20.3会签 318
20.4委派 326
20.5自由流 331
20.6小结 332
附录A jBPM术语 334