文章目录
获取流程定义
工具类获取,非常的方便
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大厂面试官】,一起学习呗🍎🍎🍎
🍎个人vx【lakernote】