| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CreateAlgorithmRunSolverSettings (AlgorithmRunLevel owner, StrategyLevelMacroPlan strategylevelmacroplan, LibOBT_RunTaskSetting benchmarksetting) | 
| { | 
|   Description: 'Create run solver settings according to the solver setting link to strategy level, or according to selected benchmarking setting' | 
|   TextBody: | 
|   [* | 
|     settinglevel := select( benchmarksetting, | 
|                             LibOBT_RunTaskSettingLevel, | 
|                             runtasksettinglevel, | 
|                             runtasksettinglevel.StrategyLevel().Level() = strategylevelmacroplan.Level() ); | 
|      | 
|     // If the solversettinggroup is not set (in the runtask) then use the default strategylevel solversettings | 
|     usefromsettinglevel := not isnull( settinglevel );  | 
|     //solversettinggroup := guard( settinglevel.SolverSettingGroup(), strategylevel.SolverSettingGroupMacroPlan() ); | 
|     solversettinggroup := strategylevelmacroplan.SolverSettingGroupMacroPlan(); | 
|      | 
|     if ( usefromsettinglevel )  | 
|     { | 
|       // Create solver settings for this algorithmrunlevel | 
|       traverse( settinglevel, SolverSettingGroup.SolverSetting, solversetting ) | 
|       { | 
|         AlgorithmRunSolverSetting::Create( owner, | 
|                                            solversetting.ParameterNumber(), | 
|                                            solversetting.ParameterValue(),  | 
|                                            solversetting.IsNumberParameter() ); | 
|       } | 
|       owner.UpdateSolverSettingGroup( guard( settinglevel.SolverSettingGroup().Name(), '' ) ); | 
|     } | 
|     else | 
|     { | 
|       // Create solver settings for this algorithmrunlevel | 
|       traverse( solversettinggroup, SolverSettingMacroPlan, solversetting ) | 
|       { | 
|         AlgorithmRunSolverSetting::Create( owner, | 
|                                            solversetting.ParameterNumber(), | 
|                                            solversetting.ParameterValue(),  | 
|                                            solversetting.IsNumberParameter() ); | 
|       } | 
|       owner.UpdateSolverSettingGroup( guard( solversettinggroup.Name(), '' ) ); | 
|     } | 
|   *] | 
| } |