工作流--JBPM核心ProcessEngine

   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

       身份认证服务接口。提供对流程用户、用户组管理。


   小结:

     熟练掌握好这些基本的操作,能够加深对流程处理的理解,知道流程处理的过程。在这个学习过程中,需要仔细研究源码,能够做到用什么流程就知道用何方法,更进一步的是,去学习这样的思想。

    

原文地址:https://www.cnblogs.com/victor-grace/p/7253646.html