0

我想知道这两个 API 有什么区别。看起来 setAssignee 是细粒度的,而 claim 是粗粒度的。这是唯一的区别吗?

4

2 回答 2

1

Activiti 的 Javadocs 中提到了这些方法之间的区别。

无效声明(字符串 taskId,字符串 userId):

与 setAssignee(String, String) 的区别在于,如果任务 > 已经有一个用户分配给它,这里会进行检查。不检查用户是否为身份组件所知。

于 2013-11-01T07:26:06.370 回答
0

回答我自己的问题

查看了声明的方法源代码,以下是摘录:

if (!task.getAssignee().equals(userId))
{
    throw new ActivitiTaskAlreadyClaimedException(task.getId(), task.getAssignee());
}
else
{
    task.setAssignee(userId);
}      
commandContext.getHistoryManager().recordTaskClaim(taskId);

从上面很明显,这是对声明的额外处理:

  1. 如果任务已分配,则抛出异常
  2. 记录声明任务的历史
于 2013-10-31T08:47:16.430 回答