Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod GenerateMetalsBenchmarkRuns ( 
 | 
  LibOpt_BT_BenchmarkTrackingDataset ds 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    /* 
 | 
    For creating an experiment with enlarged Metals benchmarks take the following steps:  
 | 
     
 | 
    1. Create extendible method CreateTrackingTablesMetals on object LibOpt_BT_BenchmarkTrackingDataset 
 | 
    2. Extend it in LibMacroPlannerOptimizer and call Optimization::GenerateMetalsBenchmarkRuns( this );  
 | 
    3. Call CreateTrackingTablesMetals from Test of object LibOpt_BT_BenchmarkTrackingDataset 
 | 
    4. Make a single tracking table in the bt application with description 'start' , and put model settings OTSNoUnplanPriorToRun and OTSGenerateMetalsBenchmark. Customize the strategyname in opt settings 
 | 
       and set ConvertMinMaxSafetyInDaysToQuantity to false 
 | 
    5. execute the test method to create all tracking tables. Now these can be used to batch run the various benchmark created below (the current method) 
 | 
    */ 
 | 
     
 | 
     
 | 
    start_tt := select( ds, TrackingTable, tt, tt.Description() = 'start' );  
 | 
     
 | 
    for ( endproductstoadd := 1; endproductstoadd <= 250; endproductstoadd := endproductstoadd + 25 ) 
 | 
    { 
 | 
      for ( intermediatetoadd := 1; intermediatetoadd <= 5; intermediatetoadd := intermediatetoadd + 1 ) 
 | 
      { 
 | 
        for ( periodstoadd := 1; periodstoadd <= 50; periodstoadd := periodstoadd + 10 )   
 | 
        { 
 | 
          addtriplotsize := true;  
 | 
          usertriplotsize := 100.0;  
 | 
           
 | 
          addptolotsize := true;  
 | 
          userptolotsize := 1000.0;  
 | 
           
 | 
          addptominqty := true;  
 | 
          userptominqty := 5000.0;  
 | 
           
 | 
          addinputlotsize := true;   
 | 
          userinputlotsize := 1000.0;  
 | 
           
 | 
          setlotcost := true;  
 | 
           
 | 
          setinventorymixbalancing := false;  
 | 
           
 | 
          addcapsmoothing := false;   
 | 
          smoothingdelta := 2.0; // 2% smoothing  
 | 
           
 | 
          addpostponement := false;  
 | 
          postponementnrperiods := 6; // parameter used for both horizon and max postponement 
 | 
           
 | 
          name :=  
 | 
          Optimization::GetBenchmarkName( endproductstoadd,  
 | 
                                          intermediatetoadd,  
 | 
                                          periodstoadd,  
 | 
                                          addtriplotsize,  
 | 
                                          usertriplotsize,  
 | 
                                          addptolotsize,  
 | 
                                          userptolotsize,  
 | 
                                          addptominqty,  
 | 
                                          userptominqty,  
 | 
                                          addinputlotsize,  
 | 
                                          userinputlotsize,  
 | 
                                          setlotcost,  
 | 
                                          setinventorymixbalancing,  
 | 
                                          addcapsmoothing,  
 | 
                                          smoothingdelta,  
 | 
                                          addpostponement,  
 | 
                                          postponementnrperiods ); 
 | 
            newtt := start_tt.Copy();  
 | 
            newtt.Description( name );  
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |