| Quintiq file version 2.0 | 
| #parent: #root | 
| Method PTF_TestLaunchOptimizer ( | 
|   output Real duration, | 
|   output String response, | 
|   String strategystr, | 
|   String optimizerstr, | 
|   String starttime, | 
|   String endtime | 
| ) as Boolean id:Method_LibPTF_pnlTestRunner_PTF_TestLaunchOptimizer | 
| { | 
|   #keys: '[136682.0.314444061]' | 
|   Body: | 
|   [* | 
|     return true;  | 
|     /* DISABLED mjn3  | 
|      | 
|     issuccessful := false; | 
|      | 
|     // get all the relevent data to run optimizer | 
|     // this was take out from the startprecisionctr to prevent the data retrieve take too long | 
|     // since this test only tested on the performance of run optimizer not data retrieve | 
|      | 
|     strategy := select( ScenarioManager, Strategy, str, str.Name() = strategystr ); | 
|     MacroPlan.DuplicateStrategySettings( strategy, false ); | 
|      | 
|     periodstart := null( Period_MP ); | 
|     periodend := null( Period_MP ); | 
|      | 
|     convert := StringToDateTime::StandardConverter(); | 
|     convert.SetCustomConversion(); | 
|     convert.CustomFormatString( 'dd-MMM-yyyy' ); | 
|      | 
|     if( convert.CanConvert( starttime ) and convert.CanConvert( endtime ) ) | 
|     { | 
|       startdatetime := convert.Convert( starttime ); | 
|       enddatetime := convert.Convert( endtime ); | 
|       periodstart := maxselect( MacroPlan, Period_MP, p, p.Start() <= startdatetime, p.Start() ); | 
|       periodend := minselect( MacroPlan, Period_MP, p, p.End() >= enddatetime, p.End() ); | 
|     } | 
|      | 
|     preconditionflag := not isnull( strategy ) | 
|                         and not isnull( periodstart ) | 
|                         and not isnull( periodend ); // Your precondition before executing the action | 
|      | 
|     if( preconditionflag ) | 
|     { | 
|       startprecisionctr := OS::PrecisionCounter(); | 
|       this.PTF_ExecutePreAsyncAction(); | 
|      | 
|       isautotunecopy := false; | 
|       hasautotunecopy := false; | 
|       issmartplan := false; | 
|       issmartplanforperiodtask := false; | 
|       hastotalsupplyuser := false; | 
|       totalsupplyuser := 0.0; | 
|       isupstreamsmartplan := false; | 
|       ismiddleoutsmartplan := false; | 
|       isonlyplanonestepupstream := false; | 
|       isforcenoautoscaling := false; | 
|       ispostprocessing := false; | 
|       isoverridelockedplanning := true; | 
|       smartplanpispips := null( ProductInStockingPointInPeriodPlannings ); | 
|       isinventoryoptimization := false; | 
|       isusingselectedunits := false; | 
|       units := null( Units ); | 
|      | 
|       MacroPlan.Algorithm().SynchronizeAllConstraintScaleType(); | 
|       MacroPlan.Algorithm().AlgorithmParameter().Update( issmartplan, | 
|                                                          issmartplanforperiodtask, | 
|                                                          hastotalsupplyuser, | 
|                                                          totalsupplyuser, | 
|                                                          isupstreamsmartplan, | 
|                                                          ismiddleoutsmartplan, | 
|                                                          isonlyplanonestepupstream, | 
|                                                          ispostprocessing, | 
|                                                          isforcenoautoscaling, | 
|                                                          isoverridelockedplanning, | 
|                                                          isinventoryoptimization, | 
|                                                          isusingselectedunits,  | 
|                                                          false ); | 
|      | 
|      | 
|       MacroPlan.UpdateParameters( isautotunecopy, hasautotunecopy, | 
|                                   smartplanpispips, | 
|                                   MacroPlan.StrategyMacroPlan(), | 
|                                   ScenarioManager,  | 
|                                   periodstart, | 
|                                   periodend ); | 
|      | 
|       smartplanpispip := null( ProductInStockingPointInPeriodPlannings ); | 
|       this.PTF_GetMPPTFLibrary().MacroPlan().RunCapacityPlanningAlgorithm( smartplanpispip, periodstart, periodend, units, null( Process_MP) ); | 
|       //12570 | 
|       //this.PTF_GetMPPTFLibrary().MacroPlan().RunOptimizer( strategy, param, true, periodstart, periodend, | 
|       //                                                    true, null( Units ), true, null( ProductInStockingPoint_MPs ), false ); | 
|      | 
|       duration   := this.PTF_GetDurationInMilisecond( startprecisionctr ); | 
|       response   := 'Launch Optimizer' ; | 
|       issuccessful := true; | 
|     } | 
|     else | 
|     { | 
|       response := 'PTF_TestCreateData: Precondition failed because < input value not correct >'; // Your precondition failed reason | 
|     } | 
|      | 
|     return issuccessful; | 
|   *] | 
| } |