教为学:JBPM4学习之路(二):流程部署

教为学:JBPM4学习之路(二):流程部署

画流程图

要部署流程,得先有流程,要有流程,得先有流程图,那要流程图,得画呗。我们画的流程图如下:

步骤:

  1. 拖一个开始节点,一个结束节点,两个任务节点。
  2. 设置两个任务节点。
  3. 第一个任务节点的设置如下。

  1. 第二个任务节点设置如下。

  1. 整个流程图的设置如下。

  1. 连线。
  2. XML文件的内容如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <process name="qingjia" xmlns="http://jbpm.org/4.4/jpdl">
  4.    <start g="293,63,48,48" name="start1">
  5.       <transition g="-69,-22" name="to 申请请假" to="申请请假"/>
  6.    </start>
  7.    <end g="290,375,48,48" name="end1"/>
  8.    <task assignee="张三" g="272,160,92,52" name="申请请假">
  9.       <transition g="-69,-22" name="to 批复请假" to="批复请假"/>
  10.    </task>
  11.    <task g="270,261,92,52" name="批复请假" assignee="李四">
  12.       <transition g="-50,-22" name="to end1" to="end1"/>
  13.    </task>
  14. </process>

流程图画了,也自动生成了"流程图"。

部署流程

部署流程的代码:

  1. @Test
  2. public void testDeploy() {
  3.    ProcessEngine processEngine = Configuration.getProcessEngine();
  4.    processEngine.getRepositoryService()
  5.    .createDeployment()
  6.    .addResourceFromClasspath("qingjia.jpdl.xml")
  7.    .addResourceFromClasspath("qingjia.png")
  8.    .deploy();
  9. }

这几行代码对数据库的操作。

先解释几行代码和类。

ProcessEngine接口:流程引擎接口,是所有服务的起点。是线程安全的。

方法:

getRepositoryService():获取RepositoryService对象。

Configuration类:配置类,用来读取配置文件,产生流程引擎类。

方法:

getProcessEngine():获取流程引擎对象。

RepositoryService接口:流程服务接口。提供对流程的部署、查询、删除操作。

方法:

createDeployment():创建一个部署产生一个NewDeployment。

NewDeployment接口。

方法

addResourceFromClasspath():添加资源。//根据资源类型的不同,这里提供了几种方法。暂时不一一列举了。

deploy():产生一个真实的部署。

首次:

操作

表名

次数

备注

查询

JBPM4_PROPERTY

4

 

插入

JBPM4_PROPERTY

1

 

查询

JBPM4_PROPERTY

1

 

更新

JBPM4_PROPERTY

1

 

查询

JBPM4_LOB

2

 

插入

JBPM4_DEPLOYMENT

1

 

插入

JBPM4_LOB

2

 

插入

JBPM4_DEPLOYPROP

1

 

更新

JBPM4_DEPLOYPROP

1

 

更新

JBPM4_LOB

2

 

更新

JBPM4_DEPLOYPROP

1

 

查询

JBPM4_DEPLOYMENT

JBPM4_DEPLOYPROP

4

 

插入

JBPM4_DEPLOYPROP

3

 

更新

JBPM4_DEPLOYPROP

6

 

其他部署:

操作

表名

次数

备注

查询

JBPM4_PROPERTY

3

 

更新

JBPM4_PROPERTY

1

 

查询

JBPM4_LOB

2

 

插入

JBPM4_DEPLOYMENT

1

 

插入

JBPM4_LOB

2

 

插入

JBPM4_DEPLOYPROP

1

 

更新

JBPM4_DEPLOYPROP

1

 

更新

JBPM4_LOB

2

 

更新

JBPM4_DEPLOYPROP

1

 

查询

JBPM4_DEPLOYMENT

JBPM4_DEPLOYPROP

4

 

插入

JBPM4_DEPLOYPROP

3

 

更新

JBPM4_DEPLOYPROP

6

 

查询和跟新,我现在水平不够管不了,先不管,看看插入。

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:在特性情况也会增加一条记录。

原文地址:https://www.cnblogs.com/jiaoweixue/p/3105250.html