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(); 表示查询符合条件的记录数量
相关文章
- [Firefly引擎][学习笔记一][已完结]带用户验证的聊天室
- MongoDB学习
- Android开发学习---template requires a minimum SDK version of at least 7,build target API version of 14
- Opencv学习笔记 各向异性滤波/均值滤波/高斯滤波/中值滤波/加权中值滤波/高斯低通滤波
- 机器学习笔记 - tensorFlow的estimator和keras API
- 机器码农:深度学习自动编程
- 如何在 Web 应用里消费 SAP Leonardo 的机器学习 API
- 使用Java程序消费SAP Leonardo的机器学习API
- Atitit Persistence API持久性标准化法总结 目录 1. 持久性对于大多数企业应用程序都非常要害1 2. 持久化api内容2 2.1. 一种声明式地执行O-R映射的方式。2
- Java语言基础学习(三)
- ML之DL:机器学习领域发展最快的分支【深度学习】的发展史及其重要性节点之详细攻略
- DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
- NSDictionary所有API的学习。
- android面试题 不仅仅是面试是一个很好的学习
- 《API接口管理Swagger2实战教程》学习笔记
- perf学习总结
- Arduino101学习笔记(七)—— 时间API
- ASP.NET Core on K8S学习初探(3)部署API到K8S
- ASP.NET Core on K8S学习初探(3)部署API到K8S
- 有了 async/await 还需要学习 Promise 么?
- Servlet学习
- [springMVC学习]4、获取请求信息,使用servlet API
- Latex学习笔记(七)参考文献模板
- k8s学习之路 | Day9 初识声明式 API