| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetRoutingStepNode ( | 
|   shadow[SCVNode] node, | 
|   Operation operation, | 
|   Boolean isupstream | 
| ) as shadow[SCVNode] id:Method_FormSupplyChainVisualization_GetRoutingStepNode | 
| { | 
|   #keys: '[134266.1.1599873257]' | 
|   Body: | 
|   [* | 
|     // Check if the RoutingStep is already one of the input nodes of this node | 
|     scvconfig := DataHolderSCVConfiguration.Data(); | 
|      | 
|     inputnode := null( shadow[SCVRoutingStepNode] ); | 
|      | 
|     traverse( scvconfig, SCVNode, n,  | 
|               n.istype( shadow[SCVRoutingStepNode] ) | 
|               and n.IsUpstream() = isupstream | 
|               and n.OwnerNodeKey() = node.Key().AsQUILL() ) | 
|     { | 
|       existingNode := n.astype( shadow[SCVRoutingStepNode] ); | 
|       routingStep := select( existingNode, OperationInNode.Operation.RoutingStep, rs, true ); | 
|        | 
|       if( routingStep = operation.RoutingStep() ) | 
|       { | 
|         inputnode := existingNode; | 
|       } | 
|     } | 
|      | 
|     return inputnode; | 
|   *] | 
| } |