1、新建项目<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
主菜单“文件->新建->项目”,在弹出的对话框里,选中JBoss jbpm节点下的“ Process Project ”项。输入项目名:JbpmProject,项目建好后结构如图所示:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 189.75pt; HEIGHT: 277.5pt" type="#_x0000_t75"><imagedata o:title="TestJbpm2结构图" src="file:///C:%5CDOCUME~1%5CUSER%5CLOCALS~1%5CTemp%5Cmsohtml1%5C13%5Cclip_image003.jpg"></imagedata></shape>
这个项目和通常 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) -->
主要是把你所用的数据库的 JDBC 库引用进来,如果你是下载的jbpm-starters-kit-3.1.2可能还要把 Hibernate 的 hibernate3.jar 加入到项目的库引用中。
这里是一个很简单的请假流程,请假人提交假单给经理审批,经理审批后结束。
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"/>
</controller>
</task>
<!-- 流程转向 -->
<transition name="to_confirm" to="confirm">
<action name="requestAction" class="com.stt.jbpm.RequestAction">
<reason>我要请假</reason>
</action>
</transition>
</start-state>
<!-- 审批 -->
<state name="confirm">
<transition name="to_end" to="end">
<action name="finishAction" class="com.stt.jbpm.ConfirmAction"/>
</transition>
</state>
<!-- 结束 -->
<end-state name="end"></end-state>
</process-definition>
说明:
流程的名称改成了 helloworld 。(呵呵,也就是这里和 helloworld 有关了)
<controller> 标签定义了三个数据:姓名、请假天数、说明。
<transition> 标签定了 request 节点的一个流程转向,这里是转到 confirm 节点。
<action> 标签定义了流程由一个节点转到另一个节点时,所要执行的动作,动作封装在一个 ActionHandler 类中。比如这里当 request 到 confirm 结点时将执行 RequestAction 类的 execute 方法。
RequestAction下面还有一个 <reason> (请假理由),它对应于RequestAction 的属性 String reason 。
在上面 processdefinition.xml 里我们定义了两个 ActionHandler : RequestAction 、 ConfirmAction 。其代码如下:
package com.stt.jbpm;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
public class RequestAction implements ActionHandler {
private static final long serialVersionUID = 1L;
private String reason;
@Override
public void execute(ExecutionContext context) throws Exception {
context.getContextInstance().setVariable("note", reason);
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}
说明: ExecutionContext 是一个贯通流程的容器。它是个大宝箱,里面啥玩意都有,后面将更深入的提到。这里的 reasion 就是 processdefinition.xml 中的 ” 我要请假 ”
package com.stt.jbpm;
import org.jbpm.graph.def.ActionHandler;
import</b
分享到:
相关推荐
jbpm4 的 实例 jbpm初学者入门的捷径
jbpm实例详解,这是一个有关jbpm的例子以及解释,详细介绍了jbpm的基础开发实现。
jbpm4实例源码,可直接运行
jbpm4实例代码。。。。。。。。。。。。。
jBPM4.4入门开发实例
该实例教程附带源码,并详细介绍如何利用myeclipse7.5一步步搭建工程.
JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...
NULL 博文链接:https://llying.iteye.com/blog/415188
jBPM4.4入门开发实例
经典的配置好的jbpm实例,可以直接部署到tomcat,直接导入到myeclipse即可。
Jbpm实例代码,供学习参考。里面包含源代码!
JBPM综合实例 OA工作流系统源码JAR包-2JBPM综合实例 OA工作流系统源码JAR包-2JBPM综合实例 OA工作流系统源码JAR包-2JBPM综合实例 OA工作流系统源码JAR包-2
这个是上个jBPM5 实例实践的运行结果文档信息,因为上次的例子给的资料不够,可能不知道如何运行,以及运行结果,因此这里补齐该资源
我写的一个jbpm实例
jbpm4.3实例源码,及流程实例图,欢迎大家下载
Jbpm与ssh2的集成的环境搭建,只是简单的搭建,有分层,可以从spring中取到processEngine
jbpm教程和实例,并详细讲述了相关配置,是新手上手的最好资料。
jBPM 开发 入门 指南 jBPM 开发 入门 指南
jbpm入门,开发,jbpm入门,开发,jbpm入门,开发,jbpm入门,开发,jbpm入门,开发,jbpm入门,开发,