| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod ParseBenchmarkName ( | 
|   String name, | 
|   output Number endproductstoadd, | 
|   output Number intermediatetoadd, | 
|   output Number periodstoadd, | 
|   output Boolean addtriplotsize, | 
|   output Real usertriplotsize, | 
|   output Boolean addptolotsize, | 
|   output Real userptolotsize, | 
|   output Boolean addptominqty, | 
|   output Real userptominqty, | 
|   output Boolean addinputlotsize, | 
|   output Real userinputlotsize, | 
|   output Boolean setlotcost, | 
|   output Boolean setinventorybalancing, | 
|   output Boolean addcapacitysmoothing, | 
|   output Real smoothingdelta, | 
|   output Boolean addpostponentspec, | 
|   output Number postponementnrperiods | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     separator := '_';  | 
|      | 
|     strlist := name.Tokenize( separator );  | 
|     traverse( strlist, Elements, str )  | 
|     { | 
|       s := str.Tokenize( ':' );  | 
|       id := s.Element( 0 ) + ':';   | 
|       val := s.Element( 1 );  | 
|       if (  id = Optimization::EndProductTag() )  | 
|       { | 
|         endproductstoadd := [Number] val;  | 
|       } | 
|       else if ( id = Optimization::IntermediateProductTag() ) | 
|       { | 
|         intermediatetoadd := [Number] val;  | 
|       }  | 
|       else if ( id = Optimization::PeriodsTag() )  | 
|       { | 
|         periodstoadd := [Number] val;  | 
|       } | 
|       else if ( id = Optimization::TripLotSizeTag() )  | 
|       { | 
|         usertriplotsize := [Real]val; | 
|         addtriplotsize := usertriplotsize > 0.0;   | 
|       } | 
|       else if ( id = Optimization::PTOLotSizeTag() )  | 
|       { | 
|         userptolotsize := [Real]val;  | 
|         addptolotsize := userptolotsize > 0.0;  | 
|       } | 
|       else if ( id = Optimization::PTOProcessMinQtyTag() )  | 
|       { | 
|         userptominqty := [Real]val;  | 
|         addptominqty := userptominqty > 0.0;  | 
|       } | 
|       else if ( id = Optimization::InputLotSizeTag() )  | 
|       { | 
|         userinputlotsize := [Real]val;    | 
|         addinputlotsize := userinputlotsize > 0.0;  | 
|       } | 
|       else if ( id = Optimization::LotCostTag() )  | 
|       { | 
|         setlotcost := val = 'true';    | 
|       } | 
|       else if ( id = Optimization::InventoryMixBalancingTag() )  | 
|       { | 
|         setinventorybalancing := val = 'true'; | 
|       } | 
|       else if ( id = Optimization::CapacitySmoothingTag() )  | 
|       { | 
|         addcapacitysmoothing := val = 'true'; | 
|       } | 
|       else if ( id = Optimization::SmoothingDeltaTag() )  | 
|       { | 
|         smoothingdelta := [Real]val;    | 
|       } | 
|       else if ( id = Optimization::PostponementTag() )  | 
|       { | 
|         addpostponentspec := val = 'true'; | 
|       } | 
|       else if ( id = Optimization::PostonementPeriodsTag() )  | 
|       { | 
|         postponementnrperiods := [Number]val; | 
|       } | 
|     } | 
|   *] | 
| } |