zoukankan      html  css  js  c++  java
  • 教为学:JBPM4.4学习之路(三):流程部署的查询、删除、流程图查看

    教为学:JBPM4.4学习之路(三):流程部署的查询、删除、流程图查看

    前言

    数据库有增删改查。

    流程部署有什么功能?

    JBPM的操作归根结底还是对数据库进行操作。所以理论上,我们对数据库所能执行的操作,流程部署的API都能为我们提供。

    我们先上一篇博文所提到的四张表的ER图。

    一句话,再怎么强调表结构也不为过。

    这节课也是对这几张表的操作。

    随着我们的深入学习,这张ER图会越来越大,当所有的表都在这张图里面的时候,我们也学得差不多了。

    查询

    在查询之前我们先看一张图。

    这张图在哪里与数据库中的哪一张表想对应?

    1、查询所有部署。

    代码:

    1. @Test
    2.    public void testListAllDeploy(){
    3.       ProcessEngine processEngine = Configuration.getProcessEngine();
    4.        List<Deployment> listDeployments = processEngine.getRepositoryService()
    5.        .createDeploymentQuery()
    6.        .list();
    7.       for (Deployment deployment : listDeployments) {
    8.          System.out.print("ID:"+deployment.getId());
    9.          System.out.println(" STATE:"+deployment.getState());
    10.       }
    11.  
    12.    }

    API详解:

    RepositoryService接口:

    方法:createDeploymentQuery()

    获取一个DeploymentQuery接口。

    DeploymentQuery查询接口:

    方法:list()

    获取Deployment集合。

    Deployment:接口。

    String getId();

    String getName();

    long getTimestamp();

    String getState();

    不解释。

    数据库操作:

    操作

    表名

    次数

    备注

    查询

    JBPM4_PROPERTY

    2

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    2、根据流程ID去查看部署。

    代码:

    1. @Test
    2.    public void testGetDeployByID(){
    3.       ProcessEngine processEngine = Configuration.getProcessEngine();
    4.       Deployment deployment = processEngine.getRepositoryService()
    5.       .createDeploymentQuery()
    6.       .deploymentId("10001")
    7.       .uniqueResult();
    8.       System.out.print("ID:"+deployment.getId());
    9.       System.out.println(" STATE:"+deployment.getState());
    10.    }

    API详解:

    DeploymentQuery deploymentId(String id);

    根据流程ID查询部署流程。

    Deployment uniqueResult();

    返回唯一的流程部署结果。

    数据库操作:

    操作

    表名

    次数

    备注

    查询

    JBPM4_PROPERTY

    2

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    3、查询所有的流程定义。

    源码:

    1. @Test
    2.    public void testAllPD(){
    3.       ProcessEngine processEngine = Configuration.getProcessEngine();
    4.       List<ProcessDefinition> pdList = processEngine.getRepositoryService()
    5.       .createProcessDefinitionQuery()
    6.       .list();
    7.       for (ProcessDefinition processDefinition : pdList) {
    8.          System.out.print("ID:"+processDefinition.getId());
    9.          System.out.print("======Key:"+processDefinition.getKey());
    10.          System.out.print("======Name:"+processDefinition.getName());
    11.          System.out.println("======Version:"+processDefinition.getVersion());
    12.       }
    13.    }

    我觉得没什么API必要详解。因为依样画葫芦也能知道这些API有很么意思。

    操作

    表名

    次数

    备注

    查询

    JBPM4_PROPERTY

    2

     

    查询

    JBPM4_DEPLOYMENT

    JBPM4_DEPLOYPROP

    1

     

    查询

    JBPM4_LOB

    1

     

    查询

    JBPM4_DEPLOYPROP

    1

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    查询

    JBPM4_LOB

    1

     

    查询

    JBPM4_DEPLOYPROP

    1

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    查询

    JBPM4_LOB

    1

     

    查询

    JBPM4_DEPLOYPROP

    1

     

    其他的几种查询方式就一一表述了,依样画葫芦吧。

    查看流程图

    查看流程图第一件事就是从数据库中把流程图取出来。

    代码如下:

    1. @Test
    2.    public void testShowImage() throws Exception{
    3.       ProcessEngine processEngine = Configuration.getProcessEngine();
    4.       InputStream inputStream = processEngine.getRepositoryService()
    5.       .getResourceAsStream("20001", "qingjia.png");
    6.  
    7.       OutputStream outputStream = new FileOutputStream("c:"+File.separator+"qingjia.png");
    8.       int b;
    9.       while ((b=inputStream.read())!=-1) {
    10.          outputStream.write(b);
    11.       }
    12.       inputStream.close();
    13.       outputStream.close();
    14.    }

    getResourceAsStream("20001", "qingjia.png")这个应该不需要解释。

    操作

    表名

    次数

    备注

    查询

    JBPM4_PROPERTY

    2

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    查询

    JBPM4_LOB

    1

     

    删除部署

    代码:

    1. @Test
    2.    public void testDelete() {
    3.       ProcessEngine processEngine = Configuration.getProcessEngine();
    4.       processEngine.getRepositoryService().deleteDeployment("10001");
    5.    }

    deleteDeployment

    deleteDeploymentCascade

    后者会把子流程一起删除!

    操作

    表名

    次数

    备注

    查询

    JBPM4_PROPERTY

    2

     

    查询

    JBPM4_DEPLOYMENT

    JBPM4_DEPLOYPROP

    1

     

    查询

    JBPM4_LOB

    1

     

    查询

    JBPM4_DEPLOYMENT

    1

     

    查询

    JBPM4_LOB

    1

     

    查询

    JBPM4_DEPLOYPROP

    1

     

    查询

    JBPM4_EXECUTION

    1

     

    更新

    JBPM4_LOB

    1

     

    更新

    JBPM4_DEPLOYPROP

    1

     

    删除

    JBPM4_LOB

    2

     

    删除

    JBPM4_DEPLOYPROP

    4

     

    删除

    JBPM4_DEPLOYMENT

    1

     

    总结

    很多的时候,所谓的流程管理本质离不开对这几张表的增删改查。

    所以,你怎么熟悉这几张表都不过分。

  • 相关阅读:
    锁屏设计文档
    用 jquery 解决 浏览器 兼容问题
    mysql 查询语句
    技术相关
    android Rom 制作2
    android Rom 制作
    UI设计
    jquery 表单验证
    cent os数据库安装
    mysql jdbc 驱动 下载地址官网
  • 原文地址:https://www.cnblogs.com/jiaoweixue/p/3112867.html
Copyright © 2011-2022 走看看