本文是通过JBPM自带的websale这个demo来向大家演示jbpm工作流的开发过程.
第一部分:开发前的准备工作:
1.下载JBPM开发包:这里需要两个jar包,到jboss的官方网站上去下载jbpm的最新版本,下载页面:http://www.jboss.com/products/jbpm/downloads.一个是完整的开发包:jbpm-starters-kit(包括JBPM开发所需要的所需的源代码,第三方的jar包和数据库的相关配置文件等),另一个是eclipse下开发JBPM所用到的IDE插件:jbpm-gpd
2.搭建开发环境:打开eclipse开始安装已经下载的JBPM的IDE插件:jbpm-designer-plunin.安装成功后既可在eclipse下开发JBPM的工作流程图了.然后还要将Ant添加到系统环境变量的path下,即:path=....ant/bin;
好,有了上面的工作,下面,我们开始进入开发网上商店的工作,在这里大家可以参考jbpm-starters-kit下的帮助文档.开发阶段分为步:(1)初始化数据库.(2)编写流程图,并将其 (3)编写代码.
首先我们来初始化数据库.JBPM提供了针对不同数据库的生成脚本,这里我们用oracle.进入命令行,到jbpm-starters-kit下jbpm-db目录下,敲入ant oracle.scripts,最终将会在build目录下生成oracle的一些数据库脚本文件.oracle.create.sql是创建JBPM所有表的数据库脚本,到数据库中执行它即可生成JBPM的所有表.
OK,数据库中已经生成了所有的表,开始下一步工作:编写流程图.打开eclipse,我们新创建一个jbpm project,起名为webstore,这个project下包含了jbpm的所有jar包和一个默认的流程文件,结构如下图.
在src/process下存放的是工作流的流程文件,打开它:
在左边的工具栏提供了一些拖拉工具,可以将它们拖到右边空白处,大家可以自己试试,至此,可以绘制自己的流程图了,不过在绘制流程之前,一定要了解JBPM的一些结点.
start state:流程开始的入口点,它与流程结束结点end state对应.
end state:流程结束的出口点,所有流程最终都要走到end state.
state节点要外部的参与才能进入到下一状态.
join相当于activity transition 的join,fork相当于activity transition的fork.
decision是一个判断,它有DecisionHandler决定下一个要经过的结点.
tasknode实际上就是一个等待中的状态,它要由认为的外界作用才能够走向下一个结点.
接下来,我们分析一下此工作流程.首先要定义几个角色:buyer,salesman,shipper,accountant.
它们的用例图如下:
系统的活动图如下:
有了上面的用例图和活动图的分析,下面可以创建工作流程了:(1)要在流程中创建四个泳道(swimlane)来限制四个角色的动作范围(2)创建相应任务结点(3)根据流程来创建结点之间的transition.由次,在eclipse下开发出的流程图如下:
(未完待续)