Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method AddDownStreamLimitedExplore ( 
 | 
  TransformerSmartPlanDownStream transformerdown, 
 | 
  LibOpt_Scope scope, 
 | 
  ProductInStockingPointInPeriodPlanningLeafs pispips, 
 | 
  RunContextForCapacityPlanning runcontext, 
 | 
  Boolean debug, 
 | 
  Boolean checksize, 
 | 
  Real fractionofmax, 
 | 
  Number fanoutmaxlanes, 
 | 
  Boolean limittononzeroplanning, 
 | 
  Number operationselectlimit, 
 | 
  Boolean resetvisited 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    start := OS::PrecisionCounter();  
 | 
    rcm := RunContextMeta::GetRunContextMeta( scope.Run() );  
 | 
    maxsizenbh := floor(  rcm.OptionMaxNumberOfPISPIPSForNeighborhood() * fractionofmax );  
 | 
     
 | 
    // we do not recreate the transfer with the purpose we keep what has been visited already ( PISPIPVisited relation )  
 | 
    transformerdown.InitForMeta( checksize, debug, fanoutmaxlanes, false, limittononzeroplanning, maxsizenbh, rcm.OptionNumberOfSmartPlanPeriods(), operationselectlimit );  
 | 
     
 | 
    oldestimate := scope.EstimatedNrPISPIPs();  
 | 
    this.AddDownStream( transformerdown, scope, runcontext, pispips, resetvisited ); 
 | 
    newestimate := scope.EstimatedNrPISPIPs();  
 | 
    end := OS::PrecisionCounter();  
 | 
    durationmethod := (end - start ) / OS::PrecisionCounterFrequency();  
 | 
    if ( debug )  
 | 
    { 
 | 
      debuginfo(  'Limited search downstream added:', newestimate - oldestimate, 'new estimate=', newestimate, 'method time=', durationmethod ); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |