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

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表中生成一条记录,记录流程的历史记录



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值