• JBPM4.4学习API


    一、流程引擎API 
    org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源。 
    既所有的Service API(服务接口)都从ProcessEngine中获取。 
    ProcessEngine由配置文件获取 

    ProcessEngine processEngine = Configuration.getProcessEngine();  

    并且是线程安全的,可以保存在静态变量中。所有的线程和请求都可以使用同一个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了解 
    流程执行服务接口,提供启动流程实例,执行推进,设置流程变量等操作 
    我的通俗理解:流程执行服务接口就是提供操作流程实例接口。 
    启动流程实例根据ID

    String id = request.getParameter("id");  
    ExecutionService executionService = processEngine  
                .getExecutionService();  
    ProcessInstance processInstance = executionService  
                .findProcessInstanceById(id);  

    设置流程变量操作:

    Map map = new HashMap();  
        map.put("owner", session.getAttribute("username"));  
        executionService.startProcessInstanceById(request  
                .getParameter("id"), map);  

    查看流程实例:

    List<ProcessInstance> piList = executionService.createProcessInstanceQuery().list();  

    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 了解 
    身份认证服务接口,提供对流程用户,用户组,成员关系的服务。

    本文转自:http://jc-dreaming.iteye.com/blog/904016

  • 相关阅读:
    other备忘
    Mdoelsim10.4怎么脚本单独仿真ISE14.7 IP核
    Vivado怎么使用In system debug(类似于chipscope的东西)
    Vivado如何使用bat脚本一键创建工程
    Vivado中VIO核使用
    FPGA上外挂DDR2&DDR3&MIG IP的使用记录
    Vivado2016旧工程IP移动到新工程
    怎样在ISE14.7中固化FLASH文件
    Quartus13.1全编译出现引脚错误(神级bug)
    自用windows小软件
  • 原文地址:https://www.cnblogs.com/dreammyle/p/4026699.html
Copyright © 2020-2023  润新知