Activiti6.0 获取流程定义以及所有元素节点、当前节点、上一个节点、下一个节点【流程定义】

1,265 阅读1分钟

文章目录

获取流程定义

工具类获取,非常的方便

        Process process = ProcessDefinitionUtil.getProcess(delegateTask.getProcessDefinitionId());
        Collection<FlowElement> flowElements = process.getFlowElements();

获取上一个节点

        Process process = ProcessDefinitionUtil.getProcess(delegateTask.getProcessDefinitionId());
        //获取当前节点信息
        FlowNode flowNode = (FlowNode) process.getFlowElement("task.getTaskDefinitionKey()");
        //获取当前节点输入连线
        List<SequenceFlow> ingoingFlows = flowNode.getIncomingFlows();
        //遍历输出连线
        for (SequenceFlow ingoingFlow : ingoingFlows) {
            //获取输出节点元素
            FlowElement sourceFlowElement = ingoingFlow.getSourceFlowElement();
            //排除非用户任务接点
            if(sourceFlowElement instanceof UserTask){
                //获取节点
                System.out.println(sourceFlowElement);
            }
        }

获取下一个节点

        Process process = ProcessDefinitionUtil.getProcess(delegateTask.getProcessDefinitionId());
		//获取当前节点信息
        FlowNode flowNode = (FlowNode)process.getFlowElement(task.getTaskDefinitionKey());
        //获取当前节点输出连线
        List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
        //遍历输出连线
        for (SequenceFlow outgoingFlow : outgoingFlows) {
            //获取输出节点元素
            FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
            //排除非用户任务接点
            if(targetFlowElement instanceof UserTask){
        	//获取节点
                System.out.println(sourceFlowElement);
            }
        }

🍎QQ群【837324215】
🍎关注我的公众号【Java大厂面试官】,一起学习呗🍎🍎🍎
🍎个人vxlakernote

img