activiti 6.0.0.4版本判断当前会签的UserTask是否为多实例任务



/**
* @param task 任务节点id
* @return boolean (这里用一句话描述返回结果说明)
* @Title: isMultiInstance 是否为多实例节点
* @Description: 是否为多实例节点
*/
private boolean isMultiInstance(TaskEntity task) {
    // 获取流程定义id
    boolean flag = false;
    String processDefinitionId = task.getProcessDefinitionId();
    Process process = ProcessDefinitionUtil.getProcess(processDefinitionId);
    FlowElement flowElement = process.getFlowElement(task.getTaskDefinitionKey());
    // 根据活动id获取活动实例
    if (flowElement instanceof UserTask) {
        UserTask userTask = (UserTask) flowElement;
        if (userTask.getBehavior() instanceof ParallelMultiInstanceBehavior) {
            ParallelMultiInstanceBehavior behavior = (ParallelMultiInstanceBehavior) userTask.getBehavior();
            if (behavior != null && behavior.getCollectionExpression() != null) {
                flag = true;
            }
        }
    }
    return flag;
}

当前的TaskEntity在命令模式中使用上下文commandcontext对象可以获取task的管理对象


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM