JBPM(三)ProcessEngine与Service API

原创 2016年08月31日 09:08:52

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风格

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) 这是指定firstmax的值(就是Hibernate中的Query.setFirstResult()Query.setMaxResults()

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

4, 查询得到结果:

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JBPM学习(二):ProcessEngine与Service API

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

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

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

JBPM学习__六个Service API

一、六个Service API的介绍 1、RepositoryService:流程资源服务的接口。提供对流程定义的部署、查询、删除等操作。 2、ExcutionService:流程执行服务的接口。提供...

jBPM5 Core Engine API

To interact with the process engine(to for example start a process),you need to set up a session. T...

jbpm4.4重要API说明

jbpm4.4重要API说明 一。流程引擎API org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源。 即所有的Service API(服务接口)...

jbpm涉及到的几个重要概念及常用API

转载自:http://www.blogjava.net/liuwentao253/archive/2008/09/17/229378.html 用于学习,如果侵犯了您的版权,敬请谅解。 ...

JBPM4.4:API风格、管理(部署、删除、更改、查询(文件资源、活动坐标))流程定义

1.     核心概念与相关API(Service API) 1.1. 概念:Process definition, process instance ,  execution 1.1.1.  P...

jbpm API的helloword实例

这篇文章主要讲述了一个应用jbpm API的helloworld实例,讲解较为粗糙,希望大家谅解。。。...

JBoss 系列七十二:jBPM 6 新功能/特性介绍(API 层面)

概述 jBPM 6.0 最终版已与上月底发布,与jBPM 5相比有很大变化,本文从API编程的角度去简单说说jBPM 6,本文设计到内容包括: 2个重要的接口运行状态管理jBPM 服务注入 (C...

JBPM的核心API使用总结(汤阳光)

1.对jbpm 3.2.2包结构的介绍.  Config文件夹,放的是配置文件. Db文件夹,是需要的数据库脚本. Designer文件夹,是对Eclipse的一个设计器插件. Doc文件夹,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBPM(三)ProcessEngine与Service API
举报原因:
原因补充:

(最多只允许输入30个字)