JBPM4学习之路2:流程部署
JBPM4学习之路(二):流程部署
画流程图
要部署流程,得先有流程,要有流程,得先有流程图,那要流程图,得画呗。我们画的流程图如下:
步骤:
拖一个开始节点,一个结束节点,两个任务节点。 设置两个任务节点。 第一个任务节点的设置如下。
第二个任务节点设置如下。
整个流程图的设置如下。
连线。 XML文件的内容如下:
<? xml version="1.0" encoding="UTF-8" ?>
< process name ="qingjia" xmlns = "http://jbpm.org/4.4/jpdl">
< start g ="293,63,48,48" name = "start1">
< transition g ="-69,-22" name = "to 申请请假" to = "申请请假"/>
</ start >
< end g ="290,375,48,48" name = "end1"/>
< task assignee ="张三" g = "272,160,92,52" name = "申请请假">
< transition g ="-69,-22" name = "to 批复请假" to = "批复请假"/>
</ task >
< task g ="270,261,92,52" name = "批复请假" assignee = "李四">
< transition g ="-50,-22" name = "to end1" to = "end1"/>
</ task >
</ process >
流程图画了,也自动生成了"流程图"。
部署流程
部署流程的代码:
@Test
public void testDeploy() {
ProcessEngine processEngine = Configuration.getProcessEngine();
processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath(" qingjia.jpdl.xml ")
.addResourceFromClasspath(" qingjia.png ")
.deploy();
}
这几行代码对数据库的操作。
先解释几行代码和类。
ProcessEngine接口:流程引擎接口,是所有服务的起点。是线程安全的。
方法:
getRepositoryService():获取RepositoryService对象。
Configuration类:配置类,用来读取配置文件,产生流程引擎类。
方法:
getProcessEngine():获取流程引擎对象。
RepositoryService接口:流程服务接口。提供对流程的部署、查询、删除操作。
方法:
createDeployment():创建一个部署产生一个NewDeployment。
NewDeployment接口。
方法
addResourceFromClasspath():添加资源。 //根据资源类型的不同,这里提供了几种方法。暂时不一一列举了。
deploy():产生一个真实的部署。
首次:
操作
表名
次数
备注
查询
JBPM4_PROPERTY
插入
JBPM4_PROPERTY
1
查询
JBPM4_PROPERTY
更新
JBPM4_PROPERTY
查询
JBPM4_LOB
插入
JBPM4_DEPLOYMENT
1
插入
JBPM4_LOB
2
插入
JBPM4_DEPLOYPROP
1
更新
JBPM4_DEPLOYPROP
更新
JBPM4_LOB
更新
JBPM4_DEPLOYPROP
查询
JBPM4_DEPLOYMENT
JBPM4_DEPLOYPROP
插入
JBPM4_DEPLOYPROP
3
更新
JBPM4_DEPLOYPROP
其他部署:
操作
表名
次数
备注
查询
JBPM4_PROPERTY
更新
JBPM4_PROPERTY
查询
JBPM4_LOB
插入
JBPM4_DEPLOYMENT
1
插入
JBPM4_LOB
2
插入
JBPM4_DEPLOYPROP
1
更新
JBPM4_DEPLOYPROP
更新
JBPM4_LOB
更新
JBPM4_DEPLOYPROP
查询
JBPM4_DEPLOYMENT
JBPM4_DEPLOYPROP
插入
JBPM4_DEPLOYPROP
3
更新
JBPM4_DEPLOYPROP
查询和跟新,我现在水平不够管不了,先不管,看看插入。
JBPM4_PROPERTY:
我找了很多资料,也没找到对这张表确切的定义,以及其表字段的明确所指。所以,我谈谈我的理解。
KEY_:这个值永远不变?还是我见识不够,会有新的产生?或者为什么做预留?里面的值是next.dbid VALUE_:和KEY_下一次部署的dbid值。 VERSION:不明白为什么叫版本?指的KEY-VALUE的版本?反正每部署一次,加一。JBPM4_DEPLOYMENT:
流程定义表。
OBID_:其实就是主键ID,流程的OBID是由JBPM4_PROPERTY的next.obid的值在部署的时候决定的。 NAME_:流程模板名称。 //暂时没搞懂由哪里决定的。 TIMESTAMP_:时间戳。 //暂时不知道有什么用。 STATE_:状态。JBPM4_DEPLOYPROP:
流程定义属性表。
OBID_: 主键ID,同一个部署流程是在JBPM4_DEPLOYMENT的OBID_的基础上进行加法操作。比如JBPM4_DEPLOYMENT的OBID_是20001,这里可能是20002、20003,以此类推。 DEPLOYMENT_:JBPM4_DEPLOYMENT主键的外键,也就是流程ID。 OBJNAME_:流程名称。KEY_:类型。
Langid:语言版本
Pdid:流程定义名称和版本号。
Pdkey:流程定义名称。
Pdversion:流程定义版本号。
STRINGVAL_:类型字符串的值。 LONGVAL_:类型数值。JBPM4_LOB:
流程图资源存储表。
OBID_: 主键ID,同一个部署流程是在JBPM4_DEPLOYMENT的OBID_的基础上进行加法操作。比如JBPM4_DEPLOYMENT的OBID_是20001,这里可能是20002、20003,以此类推。 DBVERSION_:版本。 BLOB_VALUE_:流程图的资源。 DEPLOYMENT_:JBPM4_DEPLOYMENT主键的外键,也就是流程ID。 NAME_:流程图资源名字。部署流程对表的添加操作
发布一个流程deploy后
JBPM4_PROPERTY:新增一条记录
JBPM4_DEPLOYPROP:新增三条记录
JBPM4_LOB:新增若干条记录 (不定)
JBPM4_PROPERTY: 在特性情况也会增加一条记录。
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息