一。流程引擎API
org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源。
既所有的Service API(服务接口)都从ProcessEngine中获取。
ProcessEngine由配置文件获取
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
并且是线程安全的,可以保存在静态变量中。所有的线程和请求都可以使用同一个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了解
流程执行服务接口,提供启动流程实例,执行推进,设置流程变量等操作
我的通俗理解:流程执行服务接口就是提供操作流程实例接口。
String id = request.getParameter("id");
ExecutionService executionService = processEngine
.getExecutionService();
ProcessInstance processInstance = executionService
.findProcessInstanceById(id);
//启动流程实例
ProcessInstance pi = executionService.startProcessInstanceByKey("helloword");
//执行等待流程
pi = executionService.signalExecutionById(pi.getId());
//终止流程实例
executionService.endProcessInstance(pi.getId(), "cancle");
//删除流程实例
executionService.deleteProcessInstanceCascade(pi.getId());
设置流程变量操作
Map map = new HashMap();
map.put("owner", session.getAttribute("username"));
executionService.startProcessInstanceById(request
.getParameter("id"), map);
//查看流程实例
List<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();
List<ProcessInstance> list = execution.createProcessInstanceQuery().list();
for(ProcessInstance pi2 :list){
System.out.println(pi2.getId());
}
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 了解
身份认证服务接口 。提供对流程用户,用户组,成员关系的服务。
分享到:
相关推荐
详细分析解释JBPM工作流API 内含丰富示例截图 代码
JBPM4.4-api
JBPM4.4的API手册,chm版的。
jBPM 4.4 API ,注意是英文版的,根据官方API,然后生成chm格式。
JBPM 4.4-API 官网英文原版打包CHM格式
JBPM4.4-API-CHM官方英文版(自己制作整合)
完美版JBPM4.4帮助文档,开发必备。
JBPM帮助文档 JBPM4.4帮助文档
jbpm4.4 Api 示例
【jbpm4.4+ssh配置】涉及到的是Java业务流程管理(Business Process Management,简称BPM)中的jbpm4.4版本与SSH(Struts2、Spring、Hibernate)框架的集成配置。jbpm是一个开源的BPM框架,利用Java语言实现,提供了...
【JBPM4.4+Hibernate3.5.4+Spring3.0.4+Struts2.1.8整合】的整个过程涉及到多个关键组件的集成,这些组件都是Java企业级开发中的重要部分。首先,JBPM(Business Process Management)是一个开源的工作流引擎,它...
JBPM4.4工作流,英文的API提供了大量的类库
官方的API不包括哪些实现类,找起东西来太麻烦, 自己根据源码做的一份,应该还是比较全的。
jbpm4.4 api (英文) 帮助文档
jBPM 4.4 用户指南 jBPM 4.4 是一个功能强大且灵活的工作流引擎,可以运行在独立的服务器上或者嵌入任何 Java 应用中。该用户指南提供了从安装、部署、使用、开发到原理和机制的全面的工作流教程。 jBPM 概述 ...
最新的jBPM 4.4帮助文档,直接双击打开便可使用
jbpm4.4开发工具jar包
jbpm4.4开发包2 由于上传有大小限制,这是其中一个 另一个的地址 如下http://download.csdn.net/detail/wangyonglin1123/9283251
3 Jbpm4.4介绍 7 3.1工作流引擎 8 3.2jpdl 8 3.3数据库 8 3.3.1资源库和运行时表结构 8 3.3.2历史数据库表 9 3.3.3身份认证表 9 3.4jbpm.cfg.xml 9 3.5 jbpm.hibernate.cfg.xml 10 3.6logging.properties 10 4 准备...
jbpm4.4 api 认识jbpm的工作原理,jbdl语言的介绍