`

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

阅读更多
原帖地址:http://www.cnblogs.com/jiaoweixue/archive/2013/06/01/3112867.html
  1. 我坚信初学者更加明白初学者学习的困难在哪里。
  2. 我坚信最好的学习资料是自己亲手记录。
  3. 我坚信最好的学习方法是自己动手。
  4. 我坚信最好的检验方式就是能把自己所学到的东西转手教给别人。
  5. -----作者: 高鹏

    教为学: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

     

     

    总结

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

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

本文链接

分享到:
评论

相关推荐

    JBPM4.4学习文档.ppt

    JBPM4.4学习文档.ppt

    jbpm4.4流程图

    jbpm4.4流程图

    JBPM4.4视频教程(22集附源码)

    【】(01)jbpm4.4简介【】(02)JBPM4.4开发环境搭建【】(03)jbpm4.4环境搭建续【】(04)jbpm4.4配置文件和开发前准备【】(05)jbpm4.4部署流程发起流程实例【】(06)jbpm4.4完成任务查看任务当前节点【】(07)jbpm4.4 资源...

    jbpm4.4学习教程

    jbpm4.4的学习资料 ,有pdf文件和ppt文件,适用于初学者的学习

    jBPM4.4课程文档

    jBPM4.4课程文档

    JBPM4.4+SSH2完整请假流程(部署即可用)

    利用JBPM4.4编写的完整请假流程,涉及申请人填写,经理审批以及决策节点后的老板审批,加入SSH2与JBPM4.4的jar包过后部署好就可以用,只用修改applicationContext.xml中的数据库相关信息即可!

    maven+jbpm4.4+Jboss5.0

    父项目中,根据Maven的规范,配置了相关依赖包的引用,包括:Jbpm4.4的引用包引用、Junit4.9的测试包引用,hibernate的引用包,以及应用服务器Jboss的Client引用等。 接口中,提供了部署流程、创建实例、获得当前...

    JBPM4.4之HelloWorld示例

    JBPM4.4之HelloWorld示例

    jbpm4.4文档+学习资料

    jbpm4.4好的学习资料找不到的朋友的挚爱,本人花了N久时间收录的!

    JBPM4.4流程管理Demo(附学习资料)

    JBPM4.4报销流程管理Demo(内附学习资料和sql文件),启动项目之前先运行UserController.java里面的面方法建立财务组,项目启动之后会自动建立18张表

    jbpm4.4+s2sh请假流程例子

    jbpm4.4整合s2sh 请假流程例子

    jbpm4.4 jar 包下载

    jbpm4.4 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载

    jbpm4.4学习笔记

    4.6 JBPM在MyEclipse画流程图时出现乱码: 14 5 核心API 14 5.1ProcessEngine 14 5.2RepositoryService 15 5.3ExecutionService 16 5.4TaskService 16 5.5ProcessDefinition 16 5.6ProcessInstance 16 5.7Execution ...

    jbpm4.4下载地址

    jbpm4.4下载地址

    jbpm4.4 schema.xsd

    jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd

    jbpm4.4 + ssh 案例

    首先感谢原创,相关信息请查询原创。... 看到好多朋友找不到相应的jar包,致使jbpm4.4的学习遇到困难,现提供除jbpm4.4自身jar包外的所有包,以便大家更快的学习jbpm4.4,希望能帮朋友们少走弯路!

    jbpm4.4 jar包 第三部分

    终于把jbpm4.4上传完了,由于csdn最大容量才50m,所以我把这个jar包分成三个部分。

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...

    JBPM4.4与SSH2之整合(附可运行源码和jar包列表)(my_jbpm4.4_ssh2.rar)

    JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...

    jbpm4.4-请假流程

    jbpm4.4写的流程引擎例子,互相学习交流,直接导入eclipse中就可以了。这个是个web工程,需要web容器,我用的是tomcat6.

Global site tag (gtag.js) - Google Analytics