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