1.获取processEngine的方法:

a) 方法一

private ProcessEngine processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();

b) 方法二

// 获取单例的ProcessEngine对象,使用的是默认的配置文件(jbpm.cfg.xml)

private ProcessEngine processEngine = Configuration.getProcessEngine();

2.常用的Service API(JBPM所有的操作都是通过Service完成的)

a) processEngine.getRepositoryService();//管理流程定义的相关操作(部署,查询,删除等)

b) processEngine.getExecutionService();//管理执行的,流程实例的管理操作,一次具体执行的信息,包括启动、推进、删除Execution等操作

c) processEngine.getTaskService();//管理任务的(查询任务,办理任务)

d) processEngine.getHistoryService();//管理历史的数据(执行完的数据管理,主要是查询)

3.API风格

a) 方法调用链.

b) 每一个方法都是流程有关的一个业务操作,默认是一个独立的事务.

4.查询的有关API      

功能说明

相应的查询API

查询“流程定义”

ProcessDefinitionQuery processDefinitionQuery =

processEngine.getRepositoryService()

.createProcessDefinitionQuery();

查询“执行对象”

(流程实例)

ProcessInstanceQuery processInstanceQuery =

processEngine.getExecutionService() //

.createProcessInstanceQuery();

查询“任务”

TaskQuery taskQuery = //

processEngine.getTaskService()//

.createTaskQuery();

查询“执行历史”

(流程实例历史)

HistoryProcessInstanceQuery historyProcessInstanceQuery =

processEngine.getHistoryService()

.createHistoryProcessInstanceQuery();

查询“任务历史”

HistoryTaskQuery historyTaskQuery =

processEngine.getHistoryService()

.createHistoryTaskQuery();

以上列出的Query对象有:

1. ProcessDefinitionQuery

2. ProcessInstanceQuery

3. TaskQuery

4. HistoryProcessInstanceQuery

5. HistoryTaskQuery

这些Query对象的使用方法都是一致的,如下所示:

1, 添加过滤条件:调用其中的有关方法指定条件即可。如:

a) processDefinitionQuery.processDefinitionKey("请假")是指定查询key为”请假”的流程定义;

b) taskQuery.assignee("张三")是指定办理人为”张三”的任务。

2, 添加排序条件:

a) 调用 xxQuery.orderAsc(property),表示按某属性升序排列

b) 调用 xxQuery.orderDesc(property),表示按某属性降序排列

c) 可指定多个排序条件,就是代表第1顺序,第2顺序…等。

d) 属性名在各自的Query对象(接口)中有常量定义,如:

i. ProcessDefinitionQuery.PROPERTY_ID

ii. ProcessDefinitionQuery.PROPERTY_KEY

iii. TaskQuery.PROPERTY_NAME

iv. TaskQuery.PROPERTY_ASSIGNEE

3, 指定分页有关信息:

a) 调用方法xxQuery.page(firstResult, maxResults);

b) 这是指定first与max的值(就是Hibernate中的Query.setFirstResult()与Query.setMaxResults())

c) 如果没有调用这个方法,代表要查询出符合条件的所有记录。

4, 查询得到结果:

a) 调用方法xxQuery.list(); 表示查询列表

b) 调用方法 xxQuery.uniqueResult(); 表示查询唯一的结果调用方法xxQuery.count(); 表示查询符合条件的记录数量

JBPM工作流(三)——ProcessEngine与Service API的更多相关文章

  1. JBPM学习(二):ProcessEngine与Service API

    1.获取processEngine的方法: a) 方法一 private ProcessEngine processEngine = new Configuration().setResource(& ...

  2. JBPM工作流

    一.开发环境的搭建 1.下载Jbpm4.4 1.1下载地址: https://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/ 1.2解压后 ...

  3. JBPM工作流入门总结

    关于JBPM工作流 1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Eng ...

  4. Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  5. 转发 JBPM工作流小结

    JBoss 题记:某部门领导有天突发奇想,把我们几个人叫过去,曰:最近出去开会,老有人推销自己的工作流产品,说的这好那好,你们几个给我研究研究.正好刚做完的xxx子系统里有一个申请审批的流程,你们按这 ...

  6. python调用Java代码,完毕JBPM工作流application

    1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用jav ...

  7. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  8. 【完全开源】百度地图Web service API C#.NET版,带地图显示控件、导航控件、POI查找控件

    目录 概述 功能 如何使用 参考帮助 概述 源代码主要包含三个项目,BMap.NET.BMap.NET.WindowsForm以及BMap.NET.WinformDemo. BMap.NET 对百度地 ...

  9. Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码

    微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...

随机推荐

  1. 用SublimeText当Unity Shader的编辑器

    用Visual Studio写shader实在蛋疼,那可能就会有人要问了,为啥不用插件可视化制作shader呢?因为我是新手,新手还是老老实实敲代码,慢慢来- 所以试着在网上找找,有没有类似的插件或者 ...

  2. android应用程序中获取view的位置

    我们重点在获取view的y坐标,你懂的... 依次介绍以下四个方法: 1.getLocationInWindow int[] position = new int[2]; textview.getLo ...

  3. ASP.NET Core WebApi

    ASP.NET Core WebApi 创建项目 使用VS新建项目,选择ASP.NET Core WebAPI即可. 此时Startup的Configure.ConfigureService方法中如下 ...

  4. spring注解之@PostConstruct在项目启动时执行指定方法

    一.注解解释 Spring的@PostConstruct注解在方法上,表示此方法是在Spring实例化该Bean之后马上执行此方法,之后才会去实例化其他Bean,并且一个Bean中@PostConst ...

  5. Android Studio3.1.2升级问题:Configuration 'compile' is obsolete and has been replaced with 'implementation'.

    每次升级Android Studio时,一般情况下Gradle版本的也会相应的升级,我之前Android Studio 3.0.1.Gradle 是4.1升级后为:Android Studio 3.1 ...

  6. Java高并发和多线程系列 - 1. 线程基本概念

    1. 什么是线程? 线程和进程的区别 在了解线程的概念前,我们应该先知道什么是进程? 进程是操作系统的基本概念之一, 它是正在执行的程序实例. * 下面的一些进程的基本概念你可以了解下 ------- ...

  7. PL/SQL学习笔记程序单元

    一:程序单元组成 一个PL/SQL程序单元主要包括三部分: 声明与定义部分:声明变量.常量.类型等:定义过程.函数等: 执行部分:执行PL/SQL语句:调用过程.参数:处理游标等: 异常处理部分:处理 ...

  8. Spring MVC框架处理Web请求的基本流程

  9. 关于snowflake算法生成的ID转换为JS的数字类型由于过大导致JS精度丢失的问题

    JS的数字类型目前支持的最大值为:9007199254740992,一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致. JAVA的Long类型的       最大值为:922337203 ...

  10. iOS实现 webView loadHTMLString加载外部css、js样式

    记录一下. webview(或wk)用 loadHTMLString加载内容时 ,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可. 不过当html里包含外部样式或调用 ...