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(); 表示查询符合条件的记录数量

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

JBPM4.4:执行流程实例(启动、向后一步、查询任务、拾取任务、完成任务、设置获取流程变量)

1.     执行流程实例 1.1. 启动流程实例 说明:流程实例创建后,直接就到开始活动后的第一个活动,不会在开始活动停留。 1.1.1.  示例代码1:使用指定key的最新版本的流程定义启动...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年12月14日 09:24
  • 1781

【译】jBPM6——用户手册——概览

最近因为工作需要接触jBPM,想着反正要看些资料,不如将这些资料顺便翻译过来,供有需要的朋友们参考。初次开始尝试翻译,有些生疏,请看官见谅。 后续会随着认识的深入逐步翻译或原创一些值得分享的内容出来...
  • watcher
  • watcher
  • 2014年09月14日 12:09
  • 3369

搭建Eclipse下Jbpm5开发环境

 一、 工具下载 jbpm下载地址 http://sourceforge.net/projects/jbpm/files/,下载后的文件为:jbpm-5.4.0.Final-install...
  • Callsin
  • Callsin
  • 2014年03月12日 17:16
  • 1520

工作流总结(三)JBPM 六个流程服务接口

在说明六个核心服务之前,需要提到的是ProcessEngine对象。类似一个工厂提供流程过程中所需的服务,抽象工厂设计模式的体现。而ProcessEngine对象是由Configruation对象来创...
  • chenfanglincfl
  • chenfanglincfl
  • 2015年10月12日 23:40
  • 1808

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

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

Activiti入门教程五(详解ProcessEngine的创建)

这篇博客来通过源码来看一下有关ProcessEngine创建的那些事,其中有两种方式来创建,下面来分析一下。  ProcessEngineConfiguration方式  第一种方式,在前几篇博客...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年09月20日 12:32
  • 4345

JBPM学习(一):eclipse集成JBPM

资源:   jbpm-starters-kit-3.1.2.zip官方下载地址 http://nchc.dl.sourceforge.net/sourceforge/jbpm/jbpm-starter...
  • yixiaoping
  • yixiaoping
  • 2013年09月02日 22:36
  • 10149

JBPM学习笔记 入门

转载自:http://814318774.iteye.com/blog/2025248 JBPM学习笔记 博客分类:  JBPM 1、JBPM4表说...
  • spyiu
  • spyiu
  • 2014年04月09日 13:22
  • 2883

JBPM版本选择

作为一名IT新人,老大把研究JBPM的任务交给我的时候,简直是压力山大啊!          开始一个星期时间,先到JBPM官网下载了安装包,然后按步骤搭建环境、装eclipse的插件。新建了一个JB...
  • u011677471
  • u011677471
  • 2014年03月19日 14:18
  • 1047

jbpm的表结构以及六大服务

对于jbpm的开发,你应该具备的基本知识是对于表结构的理解,以及对于API的熟悉,下面我就带大家总结一下这两方面的知识: 一、jbpm表结构介绍  1.资源库和运行时表结构(9张表)     ...
  • hy6688_
  • hy6688_
  • 2014年11月29日 11:46
  • 2201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBPM(三)ProcessEngine与Service API
举报原因:
原因补充:

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