简单介绍jBPM与SSH的完整实例

开发 后端
jBPM的开发流程可以按如下几步进行:流程的定义、流程的发布、流程实例的启动、流程节点的流转、查看流程节点图片。本示例是在spring2.0、hibernate3.2、struts1.2下开发。

简单介绍jBPM与SSH的完整实例,如果是其它版本的框架也很容易做程序的迁移。

流程的定义

流程的定义建议使用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为描述流程定义文件,本例为:

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <process-definition name="文档测试流程">   
  3.    <start-state name="开始">       <transition name="提交张三审批" to="张三审批"></transition>   
  4.    </start-state>   
  5.    <task-node name="张三审批">   
  6.       <task name="审批1">   
  7.          <assignment actor-id="张三"/>   
  8.       </task>   
  9.       <transition name="提交李四审批" to="李四审批"></transition>   
  10.    </task-node>   
  11.    <task-node name="李四审批">   
  12.       <task name="审批2">   
  13.          <assignment actor-id="李四"/>   
  14.       </task>   
  15.       <transition name="提交王五审批" to="王五审批"></transition>   
  16.    </task-node>   
  17.    <task-node name="王五审批">   
  18.       <task name="审批3">   
  19.          <assignment actor-id="王五"/>   
  20.       </task>   
  21.       <transition name="结束流程" to="结束"></transition>   
  22.    </task-node>   
  23.    <end-state name="结束"></end-state>   
  24. </process-definition>  

processimage.jpg文件是定义流程产生的图片、gpd.xml文件是图形文件的座标说明。用于在b/s下显示流程流转的图片位置。

本例中的gpd.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <process-diagram name="文档测试流程" width="801" height="477">   
  3.   <node name="开始" x="308" y="4" width="140" height="40">   
  4.    <transition name="提交张三审批">   
  5.       <label x="5" y="-10"/>   
  6.     </transition>   
  7.   </node>   
  8.   <node name="张三审批" x="310" y="90" width="140" height="40">   
  9.     <transition name="提交李四审批">   
  10.       <label x="5" y="-10"/>   
  11.     </transition>   
  12.   </node>   
  13.   <node name="李四审批" x="313" y="192" width="140" height="40">   
  14.     <transition name="提交王五审批">   
  15.       <label x="5" y="-10"/>   
  16.     </transition>   
  17.   </node>   
  18.   <node name="王五审批" x="308" y="307" width="140" height="40">   
  19.     <transition name="结束流程">   
  20.       <label x="5" y="-10"/>   
  21.     </transition>   
  22.   </node>   
  23.   <node name="结束" x="307" y="401" width="140" height="40"/>   
  24. </process-diagram> 

【编辑推荐】

  1. 关于Java反射机制的一个实例
  2. 在Java应用程序中使用Jfreechart配置
  3. 浅谈为什么Java接口中不允许定义变量
  4. Java的异常和断言学习笔记
  5. 关于Java继承的一些复习
责任编辑:彭凡 来源: javaeye
相关推荐

2011-12-22 13:17:03

JavaJFreeChart

2021-06-30 07:19:36

Netty简单使用

2010-06-01 18:11:25

Rsync 使用

2010-06-01 18:14:55

Rsync 使用

2009-09-21 14:50:01

Hibernate部署

2009-06-25 17:13:51

jBPM与Spring

2011-09-27 11:30:29

SSH 环境搭建

2020-06-04 12:15:08

Pythonkafka代码

2020-11-03 08:12:20

WebAssemblyAPI

2022-10-25 11:06:43

2009-07-07 09:51:49

Servlet实例

2009-10-10 16:12:39

机架服务器

2011-07-12 13:53:25

ASP.NETAjax

2009-06-29 14:42:54

2011-03-11 09:35:01

LAMP介绍

2010-06-13 15:53:35

ICMP协议

2009-06-25 16:52:34

2013-12-12 15:59:23

Lua脚本语言

2011-01-21 10:40:52

Sendmail

2011-02-23 13:28:12

点赞
收藏

51CTO技术栈公众号