jbpm4.4重要API说明

jbpm4.4重要API说明
一。流程引擎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 了解
身份认证服务接口 。提供对流程用户,用户组,成员关系的服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值