Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method PreProcessReactive ( 
 | 
  LibOpt_Optimizer optimizer 
 | 
) #extension 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    sm := Util::GetScenarioManagerStream();  
 | 
    strategy := sm->GetStrategy( optimizer.ActiveSettings().astype( OptimizerSettings ).StrategyName() );  
 | 
     
 | 
    mystream := strategy-> ( s )  
 | 
    { 
 | 
      oldvalmeta := strategy.UseMetaOptimizer();  
 | 
      usemeta := optimizer.istype( OptimizerMeta );  
 | 
      s.UseMetaOptimizer( usemeta ); // adapt setting if advanced tab setting of strategy does not match optimizer 
 | 
      optimizer.Optimization().astype( Optimization ).MacroPlan().DuplicateStrategySettings( s, false );  
 | 
      s.UseMetaOptimizer( oldvalmeta );  
 | 
       
 | 
      // Enlarging the metals benchmark needs to happen prior to creation of run 
 | 
      opt := optimizer.Optimization().astype( Optimization );  
 | 
      if ( opt.OTSCreateEnlargedBenchmark() )  
 | 
      { 
 | 
        opt.GenerateEnlargedMetalsBenchmark( this.TrackingTableCell().Table().Description() ); // test method in libopt_bt application is used to generate tables for enlarged benchmarks.  
 | 
      }                                                                                        // the description attribute encodes what modification must be made                                            
 | 
    } 
 | 
     
 | 
    return mystream; 
 | 
  *] 
 | 
} 
 |