一。流程引擎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 了解
身份认证服务接口 。提供对流程用户,用户组,成员关系的服务。
分享到:
相关推荐
### jBPM4.4 API 详解:工作流自动化的核心技术 #### 一、工作流基础知识 工作流,作为业务过程的部分或整体自动化,旨在通过计算机应用环境实现文档、信息或任务在多个参与者间的自动传递,以达到预期的业务目标...
《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...
本文将深入探讨JBPM4.4 API中的关键知识点,并分析其实现类的重要性。 首先,我们要理解JBPM4.4的核心概念。它是基于BPMN(Business Process Model and Notation)标准的,提供了一种图形化的方式来设计、部署和...
JBPM4.4-api
JBPM4.4的API手册,chm版的。
jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...
**jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...
3. **持久化**: jbpm4.4支持JPA(Java Persistence API),允许流程实例和相关数据在数据库中持久化,确保系统在重启后仍能恢复状态。 4. **任务服务**: 提供了任务服务,使得用户可以进行任务的接收、完成、委托和...
jBPM 4.4 API ,注意是英文版的,根据官方API,然后生成chm格式。
在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务流程。 首先,让我们深入了解一下JBPM4.4的核心特性: 1. **流程建模**:JBPM4.4支持BPMN(Business Process Modeling Notation)...
JBPM 4.4-API 官网英文原版打包CHM格式
jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...
【JBPM4.4 API】是Java Business Process Management(JBPM)系统的一个版本,它提供了一个全面的工作流和业务流程管理框架。JBPM是一个开源项目,由Red Hat维护,广泛应用于企业级应用中,用于管理和执行业务流程。...
JBPM4.4提供了一套强大的工具,包括流程设计工具(如Graclipse)、服务器端的流程引擎以及API,使得流程的生命周期管理变得简单。 3. **报销流程** - 报销流程通常涉及员工提交报销申请、财务部门审批、会计核算等...
5. **编程接口**:详细说明如何使用API来控制流程实例的生命周期,如启动、挂起、恢复和终止流程。 6. **任务管理**:涵盖如何处理工作项(Task),包括任务分配、完成和查询。 7. **事件处理**:介绍如何定义和...
【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...
3. **持久化**:jbpm4.4使用JPA(Java Persistence API)来保存流程实例和相关数据到数据库中,确保数据的持久性和可恢复性。 4. **任务服务**:提供了一套API来处理任务的分配、接收、完成和查询,使得业务用户...
【标签】"jbpm4 jbpm4.4" 强调了项目使用的具体版本,这可能对开发者了解项目的兼容性和解决可能遇到的问题有所帮助,因为不同版本的JBPM可能会有不同的特性和API变化。 【压缩包子文件的文件名称列表】: 1. `....
JBPM4.4-API-CHM官方英文版(自己制作整合)
jbpm4.4是JBoss Business Process...同时,jbpm4.4还提供了丰富的API和工具,便于开发人员进行二次开发和集成,以满足特定的业务需求。在学习过程中,可以参考提供的jbpm4.4压缩包文件,通过实际操作来加深理解和应用。