我想知道这两个 API 有什么区别。看起来 setAssignee 是细粒度的,而 claim 是粗粒度的。这是唯一的区别吗?
问问题
1188 次
2 回答
1
Activiti 的 Javadocs 中提到了这些方法之间的区别。
与 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);
从上面很明显,这是对声明的额外处理:
- 如果任务已分配,则抛出异常
- 记录声明任务的历史
于 2013-10-31T08:47:16.430 回答