JBPM(三)ProcessEngine与Service API
来源:互联网 发布:里尔政治学院 知乎 编辑:程序博客网 时间:2024/06/03 16:56
1.获取processEngine的方法:
a) 方法一
private ProcessEngine processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
b) 方法二
// 获取单例的ProcessEngine对象,使用的是默认的配置文件(jbpm.cfg.xml)
private ProcessEngine processEngine = Configuration.getProcessEngine();
在 jbpm.cfg.xml 中:
<jbpm-configuration> <import resource="jbpm.default.cfg.xml" /> <import resource="jbpm.businesscalendar.cfg.xml" /> <import resource="jbpm.tx.hibernate.cfg.xml" /> <import resource="jbpm.jpdl.cfg.xml" /> <import resource="jbpm.bpmn.cfg.xml" /> <import resource="jbpm.identity.cfg.xml" /></jbpm-configuration>
在 jbpm.hibernate.cfg.xml 中:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 如果是MySQL,一定要使用org.hibernate.dialect.MySQL5InnoDBDialect方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///jbpm4_test</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">1234</property><property name="hibernate.hbm2ddl.auto">update</property><!-- 这些映射文件是JBPM的,不能删除!!! --><mapping resource="jbpm.repository.hbm.xml" /><mapping resource="jbpm.execution.hbm.xml" /><mapping resource="jbpm.history.hbm.xml" /><mapping resource="jbpm.task.hbm.xml" /><mapping resource="jbpm.identity.hbm.xml" /></session-factory></hibernate-configuration>
2.常用的Service API(JBPM所有的操作都是通过Service完成的)
a) processEngine.getRepositoryService();//管理流程定义的相关操作(部署,查询,删除等)
b) processEngine.getExecutionService();//管理执行的,流程实例的管理操作,一次具体执行的信息,包括启动、推进、删除Execution等操作
c) processEngine.getTaskService();//管理任务的(查询任务,办理任务)
d) processEngine.getHistoryService();//管理历史的数据(执行完的数据管理,主要是查询)
3.API风格
4.查询的有关APIa) 方法调用链.
b) 每一个方法都是流程有关的一个业务操作,默认是一个独立的事务.
功能说明
相应的查询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
- JBPM学习(二):ProcessEngine与Service API
- 工作流--JBPM核心ProcessEngine
- JBPM学习__六个Service API
- JBPM学习__六个Service API
- JBPM学习(三)--引擎与5个服务
- jbpm报错:Error creating bean with name 'processEngine'
- JBPM API
- JBPM学习日志(三)
- jbpm与ssh完整示例(三)
- JBPM--三
- web service与web api
- 三、高并发秒杀API之Service层设计与实现
- jbpm工作流引擎常用API与基本流程操作
- ProcessEngine cannot be jbpm org.apache.jasper.JasperException: Unable to compile class for JSP:
- Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper
- Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper
- strtok函数源码
- [S5PV210 Linux字符驱动之PWM蜂鸣器驱动
- Android中的类装载器DexClassLoader
- 求质数
- Not enough physical memory is available to power on this virtual machine with its configured setting
- JBPM(三)ProcessEngine与Service API
- java使用eclipse/myeclipse对无源码的class文件进行反编译插件使用
- [LeetCode] 120. Triangle
- AsyncTask 异步任务 + ProgressDialog 进度条对话框
- ajax/php/javascript实现图片瀑布、搜索、点小图放大图的综合结果
- 怎么将数据库某一用户下的所有表权限赋给另一用户
- oracle数据库delete 后数据恢复
- ROS(indigo)ABB机器人MoveIt例子
- C# 小数点保留俩位小数