| 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' } | 
| } |