本文共 2333 字,大约阅读时间需要 7 分钟。
1、在eclipse中新建java project项目jbpmDemo,并导入jar包
2、将jbpm中的5个配置文件拷贝到项目的config源文件下
拷贝后效果如下:
其它配置文件不变,修改jbpm.hibernate.cfg.xml中配置如下:主要是修改数据库配置
3、绘制流程图,如下:org.hibernate.dialect.MySQL5InnoDBDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/jbpm??useUnicode=true&characterEncoding=UTF-8 root root update true
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表中生成一条记录,记录流程的历史记录