| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetLaneNode ( | 
|   output owning shadow[SCVConfiguration] scvConfig, | 
|   shadow[SCVNode] node, | 
|   Lane lane, | 
|   Boolean isupstream | 
| ) as shadow[SCVNode] id:Method_FormSupplyChainVisualization_GetLaneNode | 
| { | 
|   #keys: '[134266.1.1601363229]' | 
|   Body: | 
|   [* | 
|     // Retrive lane node that already binds to the lane | 
|      | 
|     inputnode := null( shadow[SCVLaneNode] ); | 
|      | 
|     traverse( scvConfig, SCVNode, n,  | 
|               n.istype( shadow[SCVLaneNode] ) | 
|               and n.Depth() = node.Depth() + 1 | 
|               and n.IsUpstream() = isupstream | 
|               and n.OwnerNodeKey() = node.Key().AsQUILL() ) | 
|     { | 
|       existingNode := n.astype( shadow[SCVLaneNode] ); | 
|       if( existingNode.Lane() = lane ) | 
|       { | 
|         inputnode := existingNode; | 
|       } | 
|     } | 
|      | 
|     return inputnode; | 
|   *] | 
| } |