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. ElasticSearch7.3学习(二十三)----RestHighLevelClient Java api实现match_all、ids、match、term、multi_match、bool、filter、sort等不同的搜索方式

    1.数据准备 首先创建book索引 PUT /book/ { "settings": { "number_of_shards": 1, "number ...

  3. jBPM学习之利用API完成流程实例

    流程引擎对象ProcessEngine是jBPM4所有的Service API之源.在jBPM4中各种服务相互依存,但所有的Service API都从ProcessEngine中获得,由此可见Proc ...

  4. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

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

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

  6. SpringCloud学习(二):微服务入门实战项目搭建

    一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...

  7. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  8. Salesforce LWC学习(五) LDS & Wire Service 实现和后台数据交互 & meta xml配置

    之前的几节都是基于前台变量进行相关的操作和学习,我们在项目中不可避免的需要获取数据以及进行DML操作.之前的内容中也有提到wire注解,今天就详细的介绍一下对数据进行查询以及DML操作以及Wire S ...

  9. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

随机推荐

  1. js点击图片显示在左边大图

    <div class="imgbox cf">    <img src="temp/pic2.jpg" alt="" cl ...

  2. UVA 12647 Balloon

    这是一个线段树的题目: 我记得一个月前在cf上也做过一个类似的题目: #include<cstdio> #include<cstring> #include<algori ...

  3. 盘点六大在中国复制失败的O2O案例

    O2O概念自2010年11月被引入中国以来被各方迅速炒热,各种分类信息网站.点评类网站.团购类网站.订餐类网站等都开始宣称自己为O2O模式.O2O最基本的解释是通过线上引导流量去线下体验和消费,从这个 ...

  4. CF 279A. Point on Spiral

    http://codeforces.com/problemset/problem/279/A 题意 :就是给你一个螺旋形的图,然后给你一个点,问从(0,0)点到这个点需要转几次弯,当然,是按着这个螺旋 ...

  5. [译]GotW #89 Smart Pointers

    There's a lot to love about standard smart pointers in general, and unique_ptr in particular. Proble ...

  6. linux 内核驱动--Platform Device和Platform_driver注册过程

    linux 内核驱动--Platform Device和Platform_driver注册过程 从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Pla ...

  7. iconv装换文件编码格式

    最近在mac上编译xml文本文件的时候用vim打开文件汉字总是显示乱码,修改.vimrc,修改iterm编码格式各种方法都使用遍了.最后通过iconv工具将原来的文件编码格式直接转为UTF-8解决掉. ...

  8. BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1610 给出n个点,问两两确定的直线中,斜率不同的共有多少条. 分析 暴力枚举直线,算出来斜率放 ...

  9. WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞

    漏洞名称: WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-06 ...

  10. 【转】Optiplex 7010驱动下载链接(XP&Windows7

    原文网址:http://zh.community.dell.com/support_forums/desktops/f/236/t/2606 x 7010驱动下载链接(XP&Windows7) ...