本篇承接上一篇http://txy821.iteye.com/blog/422590,来简单介绍jbpm设计器的配置和使用。
1。在Eclipse中安装JBoss jBPM Designer 插件
11 安装插件
启动 eclipse , 在Help => Software updates… =>选择“Available Soft ware”选项卡,点击“Add site…”=> local…=>定位到“D:\jbpm-jpdl-3.2.3\designer\eclipse”点击OK,然后在Available Softeware选项卡选择“org.jbpm.gd,jpdl.feature”点击安装,剩下的就不罗嗦了,装完了让eclipse自动重启一下就OK。
1.2 配置插件
在window=>Preferences下看到Jboss JBPM项,点击展开,选择 Rutime Location 点击 add, 定位到D:\jbpm-jpdl-3.2.3,名字随便取,这里取名jbpm-jpdl-3.2.3,之后回到Runtime Location 选择jbpm-jpdl-3.2.3,点击OK,配置完成。
2。验证安装
完成上述操作后,就可以创建JBoss jBPM项目了。在Eclipse中进行如下操作: File => new => Project 在项目类型中有一个“JBoss jBPM”点击展开选择“Process Project”=>输入项目名称(这里为:firstflow)=>Finish
现在你可以开始你的JBoss jBPM之旅了。在刚才新建的项目firstflow已经提供了一个简单的流程定义例子,打开src/main/jpdl/simple/processdifinition.xml 在右边编辑区就可以看到该流程定义的图形界面,左边就是设计器了。所有的GUI 设计器都是一样的用法,拖过来就可以用了,如果你在JBuilder等做过GUI开发这个就非常简单了(这里本身就没什么难度),也可以在 source 中直接编写代码来定义你的流程; src/main/jpdl/simple 下的 gpd.xml是用来定位你的图形设计组件的布局定位的,你不用去理会它,另外在Eclipse 菜单 View 中 选择 Show Grid ,你的设计器就会显示定位网格了,这样可以把组件摆的更美观;src/main/jpdl/simple 下的 processimage.jpg 就是你画的流程定义的结果图片了。 可以看出,你的工作就仅仅操作processdifinition.xml 来定义你的流程。
有了例子事情就容易多了,假如我们要建立一个自己的流程,可以在Eclipse 项目树 src/main/jpdl 右键 New => Other => 找到JBoss jBPM 展开后选择 Process Difinition => Next => 输入 Process Name (这里假设为fisrtflow) => Finish . OK, 你现在可以定义自己的流程了。
生成的项目中配置文件hibernate.cfg.xml,修改数据库(这里的数据库为上一篇中所创建的jbmpdb数据库)
<!-- hibernate dialect --> <!-- hibernate dialect --> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> <!-- JDBC connection properties (begin) === ==== JDBC connection properties (end) --> <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=jbpmdb</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
发布流程,此操作为将刚刚所设计的工作流信息存到数据库中.可以自己写一个方法来进行发布流程.
package com.sample;
import java.io.FileNotFoundException;
import junit.framework.TestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
/**
* 部署 processdefinition.xml
*/
public class DeployProcessTest extends TestCase {
/**
* 在本方法执行完毕后,检查 jbpm_processdefinition 表会多了一条记录
*
* @throws FileNotFoundException
*/
public void testDeployProcessDefinition() throws FileNotFoundException {
// 从 jbpm.cfg.xml 取得 jbpm 的配置
JbpmConfiguration config = JbpmConfiguration.getInstance();
// 创建一个 jbpm 容器
JbpmContext jbpmContext = config.createJbpmContext();
// 由 processdefinition.xml 生成相对应的流程定义类 ProcessDefinition
ProcessDefinition processDefinition = ProcessDefinition
.parseXmlResource("secondflow/processdefinition.xml");
// 利用容器的方法将流程定义数据部署到数据库上
jbpmContext.deployProcessDefinition(processDefinition);
// 关闭 jbpmContext
jbpmContext.close();
}
}
运行这个类后,这个流程信息就保存到数据库中,此时可以访问上一篇的WEB应用(http://localhost:8080/jbpm-console)来监测刚才的工作流.
流程定义完成后,你可以在src/test 创建单元测试来测试你的代码,有现成的例子这里不多说了。一切都完成后,你就可以部署你的流程了。