JBPM学习(二):ProcessEngine与Service API
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的更多相关文章
- JBPM工作流(三)——ProcessEngine与Service API
1.获取processEngine的方法: a) 方法一 private ProcessEngine processEngine = new Configuration().setResource(& ...
- 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 ...
- jBPM学习之利用API完成流程实例
流程引擎对象ProcessEngine是jBPM4所有的Service API之源.在jBPM4中各种服务相互依存,但所有的Service API都从ProcessEngine中获得,由此可见Proc ...
- Java web与web gis学习笔记(二)——百度地图API调用
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
- Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...
- Salesforce LWC学习(五) LDS & Wire Service 实现和后台数据交互 & meta xml配置
之前的几节都是基于前台变量进行相关的操作和学习,我们在项目中不可避免的需要获取数据以及进行DML操作.之前的内容中也有提到wire注解,今天就详细的介绍一下对数据进行查询以及DML操作以及Wire S ...
- InfluxDB学习之InfluxDB的HTTP API查询操作
在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...
随机推荐
- 为你下一个项目准备的 50 个 Bootstrap 插件
Bootstrap是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等. 本文向你 ...
- HTTP Keep-Alive详解
HTTP是一个请求<->响应模式的典型范例,即客户端向服务器发送一个请求信息,服务器来响应这个信息.在老的HTTP版本中,每个请求都将被创建一个新的客户端->服务器的连接,在这个连接 ...
- powerdesigner简单使用
---- 1) --- 新建流程图:新建模型,选择activity的那个就可以了. ----
- android:process为耗资源操作指定一个新进程
当有一些耗费内存比较多的操作时,可以通过android:process指定一个新的进程.保证程序运行. 例如: 一个后台长期运行的service: <service android:name=& ...
- Android开发之异步消息处理机制AsyncTask
转自:Android AsyncTask完全解析,带你从源码的角度彻底理解 另外一篇比较详细的博文:http://blog.csdn.net/liuhe688/article/details/6532 ...
- Codevs_1403_新三国争霸_(Kruskal+动态规划)
描述 http://codevs.cn/problem/1403/ 共t天,n个点,m条边,选择每条边要付出不同的代价,其中某些天某些边不能用,要保证每一天n个点都是连通的,如果换方案要付出额外的代价 ...
- mac 软件安装
[Mac]PS CC 软件下载及破解的详细方法 为github帐号添加SSH keys 在mac下,打开文件都是“Smart Adobe CC Blocker v1.0”已损坏,打不开 brew ma ...
- apache配置虚拟主机的三种方式
Apache 配置虚拟主机三种方式 一.基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP: [root@localhos ...
- 如何使用eclipse进行嵌入式Linux的开发
如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux ...
- [Tommas] Web测试中,各类web控件测试点总结
一 .界面检查 进入一个页面测试,首先是检查title,页面排版,字段等,而不是马上进入文本框校验 1.页面名称title是否正确 2.当前位置是否可见 您的位置:xxx>xxxx 3.文字格 ...