一、六个Service API的介绍
1、RepositoryService:流程资源服务的接口。提供对流程定义的部署、查询、删除等操作。
2、ExcutionService:流程执行服务的接口。提供启动流程实例、“执行”推进、设置流程变量等操作。
3、ManagermentService:流程管理控制服务的接口。在jBPM4.3中只提供一步工作(job)相关的执行和查询操作。
4、TaskService:人工任务服务的接口。提供对任务(Task)的创建、提交、查询、保存、删除等操作。
5、HistoryService:流程历史服务的接口。提供对流程历史库(即已完成的流程实例归档)中历史流程实例、历史活动实例等记录的查询操作。还提供诸如某个流程定义中所有活动的平均持续时间、某个流程定义中某转移的经过的经过次数等数据分析服务。
6、IdentityService:身份认证服务的接口。提供对流程用户、用户组以及组成员关系的相关服务。
二、六个Service API的使用
1、部署流程
ProcessEngine processEngine=Configuration.getProcessEngine();
RepositoryService repositoryService=processEngine.getRepositoryService();
repositoryService.createDeployment().addResourceFromClasspath("hello.jpdl.xml").deploy();
2、创建流程实例
ProcessEngine processEngine=Configuration.getProcessEngine();
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance processInstance=executionService.startProcessInstanceByKey("hello");
System.out.println("流程实例ID="+processInstance.getId());
3、获取流程实例当前所在节点
ProcessEngine processEngine=Configuration.getProcessEngine();
ExecutionService executionService=processEngine.getExecutionService();
String activityName=executionService.createProcessInstanceQuery().processInstanceId("hello.10001").uniqueResult().findActiveActivityNames().toString();
System.out.println("当前任务所在节点:"+activityName);
4、获取对应人员的任务
ProcessEngine processEngine=Configuration.getProcessEngine();
TaskService taskService=processEngine.getTaskService();
List<Task> tasks=taskService.findPersonalTasks("李四");
System.out.println("任务数量:"+tasks.size());
Task task=tasks.get(0);
System.out.println("任务数量:"+tasks.size());
System.out.println("任务名称:"+task.getName());
System.out.println("任务执行者:"+task.getAssignee()+" 任务ID:"+task.getId());
5、获取流程实例当前所在节点
ProcessEngine processEngine=Configuration.getProcessEngine();
ExecutionService executionService=processEngine.getExecutionService();
String activityName=executionService.createProcessInstanceQuery().processInstanceId("hello.10001").uniqueResult().findActiveActivityNames().toString();
System.out.println("当前任务所在节点:"+activityName);
6、完成任务
ProcessEngine processEngine = Configuration.getProcessEngine();
TaskService taskService = processEngine.getTaskService();
taskService.completeTask("20001");