jbpm(3)---jbpm入门示例

来源:互联网 发布:英文小说阅读软件 编辑:程序博客网 时间:2024/05/22 16:50

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>


3、绘制流程图,如下:


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();}}


运行代码后,会在数据库中生成18张数据库表,如下图:



发布流程定义后,在大对象表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");}}


流程流转到最后一个节点,流程结束。会在jbpm4_hist_procinst表中生成一条记录,记录流程的历史记录