JBPM4.4学习API

一、流程引擎API 
org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源。 
既所有的Service API(服务接口)都从ProcessEngine中获取。 
ProcessEngine由配置文件获取

ProcessEngine processEngine = Configuration.getProcessEngine();  

并且是线程安全的,可以保存在静态变量中。所有的线程和请求都可以使用同一个ProcessEngine对象。 
二、其余API 
1.那么在看看其他6个api是如何获取的:

RepositoryService  repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();

2.RepositoryService  了解 
流程资源服务接口,提供对流程定义的部署,查询,删除等操作。 
我的通俗理解:流程资源服务接口就是提供流程定义接口。 
真的不喜欢官方文档的专业‘文字游戏’术语 
如:

/***
 * test deploy
 */
public void testDeploy(){
    RepositoryService repository = processEngine.getRepositoryService();
    //发布流程定义
    String deploymentId = repository.createDeployment().addResourceFromClasspath("helloword.jpdl.xml").deploy();  

    //查看流程定义
    List<ProcessDefinition> list = repository.createProcessDefinitionQuery().list();
    for(ProcessDefinition pd:list){
        System.out.println(pd.getId());
    }
    //删除流程定义
    repository.deleteDeploymentCascade(deploymentId);
    System.out.println(repository.createProcessDefinitionQuery().list().size());
}  

3.ExecutionService了解 
流程执行服务接口,提供启动流程实例,执行推进,设置流程变量等操作 
我的通俗理解:流程执行服务接口就是提供操作流程实例接口。 
启动流程实例根据ID

String id = request.getParameter("id");
ExecutionService executionService = processEngine
            .getExecutionService();
ProcessInstance processInstance = executionService
            .findProcessInstanceById(id);  

设置流程变量操作:

Map map = new HashMap();
    map.put("owner", session.getAttribute("username"));
    executionService.startProcessInstanceById(request
            .getParameter("id"), map);  

查看流程实例:

List<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();  

4.TaskService 了解 
人工任务服务接口。提供对任务的创建,提交,查询,保存,删除等操作 
使用TaskService 对已经启动的流程查看任务列表(个人)

TaskService taskService = processEngine.getTaskService();
String username = (String) session.getAttribute("username");
List<Task> taskList = taskService.findPersonalTasks(username);  

使用TaskService完成任务

ProcessEngine processEngine = Configuration.getProcessEngine();
      TaskService taskService = processEngine.getTaskService();
Map map = new HashMap();
map.put("day", day);
map.put("reason", reason);
taskService.completeTask(taskId, map);  

说明:

//根据指定的任务ID完成任务。
taskService.completeTask(taskId)
//根据指定的任务ID,同时设定变量来完成任务。
taskService.completeTask(taskId, map)
//指定outcome,下一步转移路径,完成任务。
taskService.completeTask(taskId,outcome)
//指定outcome,下一步转移路径,,同时设定变量来完成任务。
taskService.completeTask(taskId, out,map)  

API允许设置变量,这里可以是MAP或者其他变量,这些在任务完成前将作为流程变量同步到流程实例中, 
可以根据TaskId,和在MAP设置的KEY获取变量

eg:

taskService.getVariable(taskId, "owner")  

5.HistoryService 了解 
流程历史服务的借口,提供对流程历史库(已完成 的流程实例归档)中历史流程,历史活动实例等记录的查询操作

6.ManagementService 了解 
流程管理控制服务接口

7.IdentityService 了解 
身份认证服务接口,提供对流程用户,用户组,成员关系的服务。

本文转自:http://jc-dreaming.iteye.com/blog/904016

时间: 2024-09-29 04:02:13

JBPM4.4学习API的相关文章

Jqgrid学习API

JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做什么事情. 下面是转自其他人blog的一个学习资料,与其说是学习资料,说成查询帮助文档更加合适. jqGrid学习之 ------------- 安装 jqGrid安装很简单,只需把相应的css.js文件加入到页面中即可. 按照官网文档: /myproject/css/             ui.jqgrid.css    

Sklearn -PCA 人脸识别 百度网盘sklearn学习API

PCA脸部识别现在让我们用PCA来解决一个脸部识别问题.脸部识别是一个监督分类任务,用于从照片中认出某个人.本例中,我们用剑桥大学AT&T实验室的Our Database of Faces数据集(http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html),这个数据集包含40个人每个人10张照片.这些照片是在不同的光照条件下拍摄的,每张照片的表情也不同.照片都是黑白的,尺寸为92 x 112像素.虽然这些图片都不大,但是每张

学习API之获取磁盘信息

#include <windows.h>#include <stdio.h> /************************************* BOOL GetDiskSpaceInfo(LPSTR pszDrive)* 功能:根据输入磁盘驱动器,获取磁盘信息* 参数:LPSTR pszDrive 驱动器根路径,如 D:************************************/ BOOL GetDiskSpaceInfo(LPSTR pszDrive){

学习API使用FindFirstVolume系列函数遍历驱动器,获取驱动器信息

#define _WIN32_WINNT 0x0501#include <windows.h>#include <stdlib.h>#include <stdio.h>#define  BUFSIZE MAX_PATH BOOL GetDirverInfo(LPSTR szDrive); int main(void){ TCHAR buf[BUFSIZE]; HANDLE hVol; BOOL bFlag; /******************************

学习API之文件(已存在)操作

#include <windows.h>#include <stdio.h>/** int main(int argc,PCHAR argv[])* 功能:主函数,根据输入的参数不同-删除.复制.移动文件* 参数:删除文件 -d 文件路径(绝对路径或相对路径) 复制文件-将文件从路径1复制到路径2 -c 文件路径1 文件路径2 移动(重名民)文件 -m 文件路径1 文件路径2 */int main(int argc, PCHAR argv[]){ if (0 == lstrcmp(

学习API 设置卷的挂载点,列举指定卷中具有的挂载点和路径

#define _WIN32_WINNT 0x0501#include <windows.h>#include <stdio.h>#include <tchar.h>#define BUFSIZE MAX_PATH#define FILESYSNAMEBUFSIZE MAX_PATH/*************************************** ProcessVolumeMountPoint* 功能:列举挂载点*********************

canvas学习api

1.canvas.getContext():获取渲染上下文和绘画功能: 一.绘制矩形 2.ctx.fillRect(x,y,width,height):绘制矩形: 3.ctx.strokeRect(x,y,width,height):绘制矩形边框: 4.ctx.clearRect(x,y,width,height):清除矩形: 二.绘制路径 5.ctx.beginPath():新建路径开始命令: 6.ctx.closePath():路径闭合之后绘制命令重新回到上下文: 7.stroke():通过

学习API之目录操作一 获取、设置进程或模板路径

#include <windows.h>#include <iostream>using namespace std; int main(){ CHAR szCurrentDirectory[MAX_PATH]; CHAR szMoudlePath[MAX_PATH]; CHAR szMoudlePath1[MAX_PATH]; LPSTR szKerne132 = "kernel32.dll"; HMODULE hKerne132; DWORD dwCurDi

RocketMQ学习Api

生成者 DefaultMQProducer 发送消息失败,消息重试. produce.send(msg,10) 可以指定重试的次数 消费者(先订阅服务,在发送消息) DefaultMQPushConsumer setConsumerMessageBatchMaxsize(10);    看情况,不会一次性拉取10条数据.如果生成者先生产数据,有数据积累,可能会部分10条,10条的拉取. 消费数据失败,重试.(可以得到重试的次数 ) timeout重试(无限次数的重试) exception重试(理