JBPM的核心引擎是ProcessEngine ,通过该引擎来完成工作流程的正常流转,具体的处理参见上篇博客《工作流--JBPM(二) 简单的流程演示》。下面说一下核心引擎的常用方法
一、获取ProcessEngine的方法
方法1:
private static ProcessEngine processEngine = Configuration.getProcessEngine(); //使用Configuration获取默认配置该方法使用的是默认的配置文件jbpm.cfg.xml
方法2:
private static ProcessEngine processEngine =new Configuration() // .setResource("jbpm.cfg.xml") //自定义配置文件 .buildProcessEngine(); //创建流程引擎通过使用setResource方法,可以设置自定义的配置文件。两种方法中的配置文件放置在src目录下
二、ProcessEngine的常用方法
1、getRepositoryService
流程资源服务接口。管理流程定义的相关操作(部署,查询,删除等)。
例如:
processEngine.getRepositoryService() //资源服务接口 .createDeployment() //创建部署流程 .addResourceFromClasspath("helloworld/helloworld.jpdl.xml") //加载流程文件 .addResourceFromClasspath("helloworld/helloworld.png") //加载流程图片 .deploy();执行通过调用getRepositoryService()资源服务,提供部署流程的一系列方法,来实现流程的部署。
2、getExecutionService
流程执行服务接口。提供启动流程实例、推进、删除等操作
例如:
processEngine.getExecutionService().startProcessInstanceByKey("helloworld");//启动helloworld流程通过调用getExecutionService执行服务,获取流程启动的方法,除了startProcessInstanceByKey方法之外还有startProcessInstanceById等,可以根据指定条件进行启动。
3、getTaskService
人工任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作。
例如:
//查询,根据用户id List<Task> taskList=processEngine.getTaskService().findPersonalTasks(userId); //处理,根据任务id processEngine.getTaskService().completeTask(taskId);使用的是TaskService接口,主要是对任务列表进行操作,此外还有deleteTask进行删除任务等。
4、HistoryService
流程历史服务接口。提供对任务的管理操作。提供对流程历史库中历史流程实例、历史活动实例等记录的查询。
例如:
List<HistoryTask> historyTask=processEngine.getHistoryService().createHistoryTaskQuery().list();获取历史任务列表。
5、ManagementService
流程管理控制服务接口
6、IdentityService
身份认证服务接口。提供对流程用户、用户组管理。
小结:
熟练掌握好这些基本的操作,能够加深对流程处理的理解,知道流程处理的过程。在这个学习过程中,需要仔细研究源码,能够做到用什么流程就知道用何方法,更进一步的是,去学习这样的思想。