Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method RunOptimizerWithSelectedStrategy ( 
 | 
  MacroPlan macroplan, 
 | 
  ScenarioManager scenariomanager, 
 | 
  Strategy strategy, 
 | 
  OptimizerPuzzle optpuzzle, 
 | 
  DateTime horizonStart, 
 | 
  DateTime horizonEnd 
 | 
) as stream[Void] 
 | 
{ 
 | 
  Description: 'Run Optimizer with selected strategy' 
 | 
  TextBody: 
 | 
  [* 
 | 
    if ( isnull( optpuzzle ) )  
 | 
    { 
 | 
      optpuzzle := macroplan.OptimizerPuzzleWorld();  
 | 
    } 
 | 
    macroplan.RunOptimizer( false, /* issmartplan */ 
 | 
                            false, /* issmartplanforperiodtask */ 
 | 
                            false, /* hastotalsupplyuser */ 
 | 
                            0.0, /* totalsupplyuser */ 
 | 
                            null( ProductInStockingPointInPeriodPlannings ), /* smartplanpispip */ 
 | 
                            false, /* isupstreamsmartplan */ 
 | 
                            false, /* ismiddleoutsmartplan */ 
 | 
                            false, /* isonlyplanonestepupstream */ 
 | 
                            false, /* ispostprocessing */ 
 | 
                            false, /* forcenoautoscaling */ 
 | 
                            strategy, /*strategy */ 
 | 
                            false, /* overwritemanual */ 
 | 
                            select( macroplan, PlanningPeriod, p, p.Start() = horizonStart ), /* periodstart */ 
 | 
                            select( macroplan, PlanningPeriod, p, p.End() = horizonEnd ), /* periodend */ 
 | 
                            false, /* isinventoryoptimizationrun */ 
 | 
                            false, /* isusingselectedunits */ 
 | 
                            null( Units ), 
 | 
                            null( Process_MP ), 
 | 
                            optpuzzle ); 
 | 
     
 | 
    return Transaction::GetCurrentTask().OnFinish(); // Only use this in UTF (from core software) to wait all running tasks complete before proceeding next reactive call 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |