zoukankan      html  css  js  c++  java
  • 【转】JBPM4 TaskService

    TaskService的主要目的是提供对任务列表的访问途径。 例子代码会展示出如何为id为johndoe 的用户获得任务列表

    List<Task> taskList = taskService.findPersonalTasks("johndoe"); 

    一般来说,任务会对应一个表单,然后显示在一些用户接口中。 表单需要可以读写与任务相关的数据。

    // read task variables 
    Set<String> variableNames = taskService.getVariableNames(taskId); 
    variables = taskService.getVariables(taskId, variableNames); 

    // write task variables 
    variables = new HashMap<String, Object>(); 
    variables.put("category", "small"); 
    variables.put("lires", 923874893); 
    taskService.setVariables(taskId, variables); 


    taskSerice也用来完成任务。
    taskService.completeTask(taskId); 
    taskService.completeTask(taskId, variables); 
    taskService.completeTask(taskId, outcome); 
    taskService.completeTask(taskId, outcome, variables); 

    这些API允许提供一个变量map,它在任务完成之前作为流程变量添加到流程里。 它也可能提供一个“外出outcome”,这会用来决定哪个外出转移会被选中。 逻辑如下所示:

    如果一个任务拥有一个没用名称的外向转移:
    taskService.getOutcomes() 返回包含一个null值集合,。
    taskService.completeTask(taskId) 会使用这个外向转移。
    taskService.completeTask(taskId, null) 会使用这个外向转移。
    taskService.completeTask(taskId, "anyvalue") 会抛出一个异常。

    如果一个任务拥有一个有名字的外向转移:
    taskService.getOutcomes() 返回包含这个转移名称的集合。
    taskService.completeTask(taskId) 会使用这个单独的外向转移。
    taskService.completeTask(taskId, null) 会抛出一个异常(因为这里没有无名称的转移)。
    taskService.completeTask(taskId, "anyvalue") 会抛出一个异常。
    taskService.completeTask(taskId, "myName") 会根据给定的名称使用转移。

    如果一个任务拥有多个外向转移,其中一个转移没有名称,其他转移都有名称:
    taskService.getOutcomes() 返回包含一个null值和其他转移名称的集合。
    taskService.completeTask(taskId) 会使用没有名字的转移。
    taskService.completeTask(taskId, null) 会使用没有名字的转移。
    taskService.completeTask(taskId, "anyvalue") 会抛出异常。
    taskService.completeTask(taskId, "myName") 会使用名字为'myName'的转移。

    如果一个任务拥有多个外向转移,每个转移都拥有唯一的名字:
    taskService.getOutcomes() 返回包含所有转移名称的集合。
    taskService.completeTask(taskId) 会抛出异常,因为这里没有无名称的转移。
    taskService.completeTask(taskId, null) 会抛出异常,因为这里没有无名称的转移。
    taskService.completeTask(taskId, "anyvalue") 会抛出异常。
    taskService.completeTask(taskId, "myName") 会使用名字为'myName'的转移。

    任务可以拥有一批候选人。候选人可以是用户也可以是用户组。用户可以接收自己是候选人的任务。接收任务的意思是用户会被设置为被分配给任务的人。在那之后,其他用户就不能接收这个任务了。

    人们不应该在任务做工作,除非他们被分配到这个任务上。用户界面应该显示表单,如果他们被分配到这个任务上,就允许用户完成任务。对于有了候选人,但是还没有分配的任务,唯一应该暴露的操作就是“接收任务”。

  • 相关阅读:
    装箱与拆箱
    java中final的用法
    一次坑爹的Oracle in查询
    Spring-Security-Oauth整合Spring-Security,拦截器
    jvisualvm连接远程Tomcat
    7.Spring-Cloud服务容错保护之Hystrix初探
    8.Spring-Cloud-Hystrix之异常处理
    9.Spring-Cloud-Hystrix之请求缓存(踩坑)
    10.Spring-Cloud-Hystrix之熔断监控Hystrix Dashboard单个应用
    11.Spring-Cloud-Hystrix之熔断监控Turbine
  • 原文地址:https://www.cnblogs.com/minideas/p/2022004.html
Copyright © 2011-2022 走看看