zoukankan      html  css  js  c++  java
  • JBPM4学习之路2:流程部署

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

    1. 画流程图

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

      步骤:

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

  • 相关阅读:
    删除功能ThinkPHP
    详解又详解KMP中的next和nextval的算法
    Thinphp ajax搜索框实施搜索提示
    tp3无法select一条数据记录
    一步步学习springcloud之总览(一)
    使用github搭建自己的maven仓库
    Win7 安装7zip后无7zip右键菜单的解决办法
    基于微信的邮箱新邮件推送
    Apache James 使用MySQL存储启动报错Specified key was too long; max key length is 3072 bytes
    错误提示:Error running MainActivity: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3105468.html
Copyright © 2011-2022 走看看