博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jbpm(3)---jbpm入门示例
阅读量:4087 次
发布时间:2019-05-25

本文共 2333 字,大约阅读时间需要 7 分钟。

1、在eclipse中新建java project项目jbpmDemo,并导入jar包

2、将jbpm中的5个配置文件拷贝到项目的config源文件下

拷贝后效果如下:

其它配置文件不变,修改jbpm.hibernate.cfg.xml中配置如下:主要是修改数据库配置

org.hibernate.dialect.MySQL5InnoDBDialect
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/jbpm??useUnicode=true&characterEncoding=UTF-8
root
root
update
true

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

你可能感兴趣的文章
2017.2.20
查看>>
Shader2.0常用语义
查看>>
环境变量配置
查看>>
JavaScript-Tool:Numeral.js
查看>>
【计算机网络】第二章 网络应用(5)
查看>>
matplotlib-形状
查看>>
java静态代理与动态代理简单分析
查看>>
xib中button不能点击
查看>>
STL容器 -- Bitset
查看>>
笔记 - JavaScript 高级程序设计【第 05 章:引用类型】
查看>>
PHP AES cbc模式 pkcs7 128加密解密
查看>>
我理解的数据结构(一)—— 数组(Array)
查看>>
前端-----伪元素选择器 和浮动
查看>>
Hdu -1214- 圆桌会议
查看>>
MySql索引优化
查看>>
Linux 笔记
查看>>
晨起第一杯水这样喝多活20年
查看>>
计科院静态网页
查看>>
使用JavaScript分别实现4种样式的九九乘法表(1X1分别在左上、左下、右上、右下)...
查看>>
poj 1700
查看>>