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;
  *]
}
