1、在eclipse中新建java project项目jbpmDemo,并导入jar包
2、将jbpm中的5个配置文件拷贝到项目的config源文件下
拷贝后效果如下:
其它配置文件不变,修改jbpm.hibernate.cfg.xml中配置如下:主要是修改数据库配置
<?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>
<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:3306/jbpm??useUnicode=true&characterEncoding=UTF-8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.format_sql">true</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、发布流程图
package com.cn.test;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
/**
* 发布流程定义
* 流程定义processDefinition,流程定义是规则,规则就是没有数据的描述
*
* */
public class DeployProcessDefinition {
public static void main(String[] args) {
/**
* 1、创建流程引擎
* Configuration用于读取src下的jbpm.cfg.xml配置文件
**/
ProcessEngine processEngine=Configuration.getProcessEngine();
/**
* 2、通过流程引擎对象发布流程定义
* RepositoryService主要用于管理流程定义的
* */
RepositoryService repositoryService=processEngine.getRepositoryService();
repositoryService.createDeployment().addResourceFromClasspath("jpdl/demo.jpdl.xml").deploy();
}
}
发布流程定义后,在大对象表jbpm4_lob中会产生一条数据用于存放流程定义的jpdl内容和流程定义图片
在jbpm4_deployprop中会产生四条数据
5、发布流程实例
package com.cn.test;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import com.cn.util.JbpmUtil;
/**
* 启动流程实例
* */
public class StartProcessInstance {
public static void main(String[] args) {
//1、得到流程引擎对象
ProcessEngine processEngine =JbpmUtil.getProcessEngine();
//2、得到流程实例管理对象
ExecutionService executionService=processEngine.getExecutionService();
//3、启动流程实例,可以通过jbpm_deployPro中的pdId和pdkey启动
executionService.startProcessInstanceById("demo-1");
}
}
发布完流程实例后,会在数据库表jbpm4_execution表中产生一条记录,如下:
6、流程流转
package com.cn.test;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import com.cn.util.JbpmUtil;
/**
* 启动流程实例
* */
public class StartProcessInstance {
public static void main(String[] args) {
//1、得到流程引擎对象
ProcessEngine processEngine =JbpmUtil.getProcessEngine();
//2、得到流程实例管理对象
ExecutionService executionService=processEngine.getExecutionService();
//4、流程流转
executionService.signalExecutionById("demo.10001");
}
}