jBPM4.4: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") 会抛出一个异常。

 

如果一个任务拥有一个有名字的外向转移:

  • gtaskService.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'的转移。

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

 

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值