原文地址:http://blog.csdn.net/shazhenzhong/archive/2009/01/10/3744746.aspx
说明
Jbpm的开发流程可以按如下几步进行:流程的定义、流程的发布、流程实例的启动、流程节点的流转、查看流
程节点图片。本示例是在spring2.0、hibernate3.2、struts1.2下开发。
如果是其它版本的框架也很容易做程
序的迁移。
流程的定义
流程的定义建议使用jbpm提供的eclipse下的插件,图形化配置插件安装文件可以到jbpm-starters-kit-3.1.4"jbpm-designer"jbpm-gpd-feature"eclipse下找到,需注意版本。使用这种方
式可以把定义的流程描述的三个文件压缩成zip包,统一的部署到数据库中,方便b/s系统中显示图片当前节点信息。
1插
件安装
把jbpm-gpd-feature文件夹复制到C:"Program Files"MyEclipse-6.0M1"eclipse"plugins下,注意自己的ecplise路径。
在C:"Program
Files"MyEclipse-6.0M1"eclipse"links文件夹下建立jbpm-gpd.link文件。内容如下:path=C:""Program
Files""MyEclipse-6.0M1""eclipse""plugins""jbpm-gpd-feature。
这样再重新启动eclipse就可以使用流程定义功能了。
2流
程的定义
在eclipse环境中选择file->new->other下的jboss
jbpm->process definition流程定义。要在自己的项目文件中先指定文件要创建的文件夹。
这样会产生三个文件:gpd.xml、processdefinition.xml、processimage.jpg。
processdefinition.xml为描述流程定义文件,本例为:
<?xml version="1.0" encoding="UTF-8"?>
<process-definition
name="文档测试流程">
<start-state name="开始">
<transition name="提交张三审批" to="张三审批"></transition>
</start-state>
<task-node name="张三审批">
<task name="审批1">
<assignment
actor-id="张三"/>
</task>
<transition name="提交李四审批" to="李四审批"></transition>
</task-node>
<task-node name="李四审批">
<task name="审批2">
<assignment
actor-id="李四"/>
</task>
<transition name="提交王五审批" to="王五审批"></transition>
</task-node>
<task-node name="王五审批">
<task name="审批3">
<assignment
actor-id="王五"/>
</task>
<transition name="结束流程" to="结束"></transition>
</task-node>
<end-state name="结束"></end-state>
</process-definition>
processimage.jpg文件是定义流程产生的图片、gpd.xml文件是图形文件的座标说明。用于
在b/s下显示流程流转的图片位置。
本例中的gpd.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<process-diagram name="文档测试流程" width="801" height="477">
<node name="开始"
x="308" y="4" width="140" height="40">
<transition name="提交张三审批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="张三审批" x="310" y="90" width="140" height="40">
<transition name="提交李四审批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="李四审批" x="313" y="192" width="140" height="40">
<transition name="提交王五审批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="王五审批" x="308" y="307" width="140" height="40">
<transition name="结束流程">
<label x="5" y="-10"/>
</transition>
</node>
<node name="结束"
x="307" y="401" width="140" height="40"/>
</process-diagram>