如何正确清理活动任务候选人?

时间:2016-11-08 10:51:56

标签: java spring alfresco activiti

需要在任务监听器中清理(修改)candidateGroupscandidateUsers

@Override
public void notify(DelegateTask delegateTask) {
    DelegateExecution execution = delegateTask.getExecution();
        Set<IdentityLink> candidates = delegateTask.getCandidates();
        for (IdentityLink candidate : candidates) {
            // ???
            delegateTask.deleteCandidateGroup(candidate.getGroupId());
            delegateTask.deleteCandidateUser(candidate.getUserId());
        }
}

问题是该怎么称呼?删除组和用户有2种不同的方法。方法candidate.getType()可以帮助识别用户或群组,但org.activiti.engine.task.IdentityLinkType还有其他值:

public class IdentityLinkType {
    public static final String ASSIGNEE = "assignee";
    public static final String CANDIDATE = "candidate";
    public static final String OWNER = "owner";
    public static final String STARTER = "starter";
    public static final String PARTICIPANT = "participant";
}

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你想要实现的目标,因为候选人都将被有效地清理干净#34;一旦任务完成。历史上唯一保留的是任务所有者和受让人。候选人未收集历史记录。

也就是说,身份链接类型允许用户以不同的方式参与流程(即所有者可以委托,受让人负责执行任务,候选人是潜在的受让人,但必须完成任务等等)。 / p>

您的代码&#34;清理&#34;候选人很好,但是一旦任务被宣告并完成,这可能是多余的。