1、新建项目
主菜单“文件->新建->项目”,在弹出的对话框里,选中JBoss jbpm节点下的“ Process Project ”项。输入项目名:JbpmProject,项目建好后结构如图所示:
这个项目和通常 Eclipse 的项目结构有点不同,不过 这是一个现在非常流行的项目结构, src/java 存放源文件, test/java 存放相应的 JUnit 单元测试代码。
下面介绍一下各个文件:
l MessageActionHandler ,自动生成的一个 ActionHandler 。不想要可以删掉。
l ehcache.xml cache 的配置文件,里面有很详解的英文说明。没有必要可以不用改它。
l hibernate.cfg.xml jBPM 是用 Hibernate 进行工作流的数据存储的,这个就是 Hibernate 的配置文件。后面我们将讲到如何配置这个文件。
l jbpm.cfg.xml jbpm 本身的配置文件。现在是空的,它用的是缺省配置,你想知道有哪些配置就去看这个文件E:/software/jbpm-starters-kit-3.1.2/jbpm/src/java.jbpm/org/jbpm/default.jbpm.cfg.xml
l log4j.properties 这个是日志 API 包 log4j 的配置文件,用过 log4j 的都知道。
l SimpleProcessTest.java 这个是对最重要的流程配置文件的 processdefinition.xml 单元测试代码。这里表扬一点, jBPM 的优良设计使得它的可测试性非常之高,喜欢写 t 单元测试的人有福了。
l gpd.xml 用于生成流程图的定义文件。都是一些方框的坐标和长宽
l processdefinition.xml 这个是对最重要的流程配置文件,以后写流程要经常和它打交道。
l processimage.jpg 一个流程图
2、修改hibernate.cfg.cml配置文件
hibernate.cfg.xml 的默认设置是用 HSQL ,这是一个内存数据库,这种内存数据库用来代替项目实际所用的数据库来做单元测试挺不错的。
注:配置值可参考jbpm-starters-kit-3.1.2/jbpm-db 对应子目录下的 hibernate.properties 文件。
一、网上朋友给我mysql与oracle的配置如下:
1 、 MySQL 的更改如下:
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
2 、 Oracle 的更改如下:
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.123.10:1521:wxxrDB</property>
<property name="hibernate.connection.username">chengang</property>
<property name="hibernate.connection.password">chengang</property>
如果你装了 Oracle 的客户端,并且 D:/oracle/ora92/network/ADMIN/tnsnames.ora 里做了如下的设置
WXXRDB_192.168.123.10 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.10)(PORT = 1521))
)
(CONNECT_DATA =
(SID = wxxrDB)
(SERVER = DEDICATED)
)
)
则 Oracle 的 hibernate.connection.url 项也可以设为: jdbc:oracle:oci:@WXXRDB_192.168.123.10
二、我的配置修改
1、sqlserver
<!-- hibernate dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- JDBC connection properties (begin) -->
<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost:1433/jbpm</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">admin</property>
<!-- JDBC connection properties (end) -->
3、完善库引用
主要是把你所用的数据库的 JDBC 库引用进来,如果你是下载的jbpm-starters-kit-3.1.2可能还要把 Hibernate 的 hibernate3.jar 加入到项目的库引用中。
4、开始流程
这里是一个很简单的请假流程,请假人提交假单给经理审批,经理审批后结束。
1 、定义流程
流程的定义文件是 processdefinition.xml ,这个是一个关键文件, jBPM 的很大一部份内容都是关于它的。在这里我们把原来自动生成的内容,稍做改动:
<?xml version="1.0" encoding="UTF-8"?>
<process-definition
xmlns="urn:jbpm.org:jpdl-3.2"
name="helloworld">
<!-- 申请 -->
<start-state name="request">
<task>
<controller>
<variable name="name"/>
<variable name="day"/>
<variable name="note"/>