JBPM 工作流开发指南 v1.0
第 1 页 共 100 页
JBPM 开发指南
BSTEK
2007 年 7 月
JBPM 工作流开发指南 v1.0
第 2 页 共 100 页
目录
一、概述 .............................................................................................................................4
二、第一个流程...................................................................................................................5
2.1、开始前的准备 ......................................................................................................5
2.2 、Hello World 例子 ..............................................................................................6
三、学习 JPDL..................................................................................................................11
3.1 、简介 .................................................................................................................11
3.2 、流程版本(Version) ......................................................................................11
3.3 、流程定义..........................................................................................................12
3.3.1 process-definition(流程定义) .....................................................................12
3.3.2 node(自动节点) .........................................................................................13
3.3.3 start-state(开始状态) .................................................................................13
3.3.4 end-state(结束节点) ..................................................................................14
3.3.5 state(状态).................................................................................................14
3.3.6 task-node (任务节点).................................................................................15
3.3.7 fork(分支)...................................................................................................16
3.3.8 join(联合) ...................................................................................................17
3.3.9 decision(决策) ...........................................................................................18
3.3.10 transition(转换) ........................................................................................19
3.3.11 event(事件)..............................................................................................20
3.3.12 action(动作) .............................................................................................20
3.3.13 script(脚本) ..............................................................................................22
3.3.14 expression(表达式).............................................................................23
3.3.15 variable(变量) ..........................................................................................23
3.3.16 handler(句柄)...........................................................................................23
3.3.17 timer(定时器) ...........................................................................................24
3.3.18 create-timer(创建定时器).........................................................................25
3.3.19 cancel-timer(取消定时器) ........................................................................26
3.3.20 task(任务) ................................................................................................26
3.3.21 swimlane(泳道)........................................................................................27
3.3.22 assignment(委派) ....................................................................................28
3.3.23 controller(控制器) ....................................................................................29
3.3.24 process-state 子流程 ..............................................................................29
3.3.25 sub-process 子流程 ................................................................................30
3.3.26 condition 条件.........................................................................................30
3.3.27 exception-handler 异常处理 ...................................................................31
小结 ....................................................................................................................33
四、流程中任务的分配......................................................................................................37
4.1 assignment-handler 方式的任务分配...................................................................38
4.2 swimlane 方式的任务分配 ...................................................................................39
五、JBPM 持久化 .............................................................................................................42
JBPM 工作流开发指南 v1.0
第 3 页 共 100 页
5.1 特殊数据库支持 ..................................................................................................42
5.2 JBPM 数据库的安装 ............................................................................................42
5.2 JBPM 流程发布....................................................................................................45
5.2.1 搭建 JBPM 的 WEB 应用 ..........................................................................46
5.2.2 发布第一个流程 ........................................................................................48
六、日历(Scheduler).........................................................................................................54
6.1 Scheduler 在 C/S 程序上的应用 ..........................................................................54
6.2 Scheduler 在 Web 上的应用 ...............................................................................57
6.3 Scheduler 时间的分类 .........................................................................................60
七、异步执行 ....................................................................................................................63
八、JBPM 流程建模与应用...............................................................................................64
8.1 JBPM 的建模工具 ................................................................................................64
8.1.1 建模工具的安装 ........................................................................................64
8.2 公司报销流程示例 ...............................................................................................67
8.2.1 流程建模 ...................................................................................................67
8.2.2 流程数据库搭建 ........................................................................................76
8.2.3 构建业务表 ...............................................................................................79
8.2.4 搭建工程 ...................................................................................................82
8.2.5 报销流程的发布 ........................................................................................83
8.2.6 应用程序搭建 ............................................................................................84
九、写在最后 ..................................................................................................................100
JBPM 工作流开发指南 v1.0
第 4 页 共 100 页
一、概述
JBPM 是一个扩展性很强的工作流系统,百分百用 JAVA 语言开发,持久层采用
Hibernate 实现,理论上说,只要 Hibernate 支持的数据库 JBPM 都支持。同时它还能被部
署在任何一款 JAVA 应用服务器上。
JBPM 工作流开发指南 v1.0
第 5 页 共 100 页
二、第一个流程
2.1、开始前的准备
JBPM 的工程文件,大家可以到如下网站上去下载:
http://www.jboss.com/products/jbpm 目前的最新版本是 3.2.1,本文就以此版本为例。在这
里请大家下载 jbpm-starters-kit-3.1.2 这样一个版本。在这个版本里包括一个 JBPM 流程设
计器的 Eclipse 插件,和一个用 JBOSS 作为服务器的示例流程等相关文件。解压
jbpm-starters-kit-3.1.2.rar 到某个特定目录,这里我们首先用到的是包里的 JBPM 目录下的
文件。
JBPM 目录里面是 JBPM 的 Eclipse 的工程文件,我们可以用 Eclipse 导入该工程。从
Eclipse 的 File 菜单里选择 import——> Existing Projects into Workspace——>next…根据
向导找到前面提到的 JBPM 目录就可以把该工程导入到 Eclipse 当中。如下图: