JBPM4.4工作流例子教程
2.将jbpm4.4解压目录下->examples->src 的下列文件拉倒项目之中
项目的目录呈现如下:
3.将内容改为如下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--用hibernate连接数据库的关键部分-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/jbpm2</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
</session-factory>
</hibernate-configuration>
4.加载jbpm4.4的jar包
按着项目右键选properties,选java build path来加载jar包:
(1)先按加入必须的JUnit的library,一直next,finish
结果如下:
(2)加入使用jbpm4.4的包,按,选中对应目录下的包即可
加入:jbpm4.4下的,加入jbpm4.4->lib下的所有jar包
5,创建数据库JBPM2,用命令控制台创建如下(也可以用企业管理器创建,结果有一个数据库就行了)
6.创建一个文件名为processtest:
再创建一个如下工作流:
的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<process name="processtest" xmlns="http://jbpm.org/4.4/jpdl">
<start name="start1" g="238,113,48,48">
<transition name="to state1" to="state1" g="-59,-17"/>
</start>
<state name="state1" g="216,225,92,52">
<transition name="to end1" to="end1" g="-47,-17"/>
</state>
<end name="end1" g="240,345,48,48"/>
</process>
7.在src中创建一个名为com的package,在com里创建一个SecondJBPM4的类,目录如下:
文件内容:
package com;import org.jbpm.api.ProcessInstance;
import org.jbpm.test.JbpmTestCase;
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test;
public class SecondJBPM4 extends JbpmTestCase{
private String deploymentId;
//建立jBPM4.4的数据库表,@Test是设置测试点的意思
@Test
public void testCreateSchema() {
new org.hibernate.cfg.Configuration().configure("jbpm.hibernate.cfg.xml").buildSessionFactory();
}
/**-----部署过程-----**/
/*RepositoryService部署*/
@Override
protected void setUp() throws Exception{
super.setUp();
deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("processtest.jpdl.xml").deploy();
//使用了我们创建的工作流所产生的xml文件
}
/*ExecutionService启动*/
public void testProcess(){
ProcessInstance pi=
executionService.startProcessInstanceByKey("processtest");
assertEquals(false,pi.isEnded());
pi = executionService.signalExecutionById(pi.getId());
assertEquals(true,pi.isEnded());
}
/*TaskService完成任务*/
@Override
protected void tearDown() throws Exception{
executionService.deleteProcessInstanceCascade(deploymentId);
super.tearDown();
}
}
8.执行该java文件,产生部分结果如下,数据库也有相关的存储改变: