Activiti监听器中设置候选人
delegateTask.setAssignee与delegateTask.addCandidateUser区别
// 指定办理人
delegateTask.setAssignee("zhangsan");
这种表示在task表中设置
但act_run_identityliink表中不会存
设置候选人,可以设置多个
delegateTask.addCandidateUser("张三");
设置多个例如
delegateTask.addCandidateUser("张三");
delegateTask.addCandidateUser("李四");
这种设置task表assignee字段中不会有值,但act_run_identityliink表中会存候选人,且可以设置多个
图中是设置一个的效果
设置候选人后候选人候选人可以认领任务 认领了之后 assignee中就会设置值
例如zhangsan调用taskService.claim(taskId例如:67502, "认领人例如:zhangsan");认领了67502任务,则67502的task表中assignee会设置为zhangsan
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
/**
*个人任务分配监听器
*/
public class UserTaskListener implements TaskListener {
private static final long serialVersionUID = 1L;
public void notify(DelegateTask delegateTask) {
// 指定办理人
// delegateTask.setAssignee("zhangsan");
// 指定候选人
delegateTask.addCandidateUser("张三");
// delegateTask.addCandidateUser("李四");
// delegateTask.addCandidateUser("王五");
}
}
设置候选组
组的数据从ACT_ID_GROUP获取,设置成表中name字段的值。 因为Activiti的权限表功能单一,所以一般不建议使用,适用业务自己的权限表。
如果想用,那就同步业务权限数据到Activiti,用户表对应ACT_ID_USER,角色表对应ACT_ID_GROUP,用户角色关系表对应ACT_ID_MEMBERSHIP