Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SetMessageBenchmarking ( 
 | 
  RunContextForCapacityPlanning runcontext 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    if ( runcontext.IsOTS() )  
 | 
    { 
 | 
      mp := this.MacroPlan();  
 | 
       
 | 
      pispip := counter( mp, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning, p, true );  
 | 
      sdipcount := counter( mp, SalesSegment_MP.SalesDemandInPeriod, sdip, true, true);  
 | 
      pit := counter( mp, Unit.Lane.LaneLeg.Trip.ProductInTrip, pit, true, true ) 
 | 
       
 | 
      ptocount := counter( mp, Unit.Operation.PeriodTaskOperation, pto, true, true )  
 | 
      triplot := counter(  mp, Unit.Lane.LaneLeg.Trip, trip, true, trip.HasLotSize() ) 
 | 
      ptolot := counter( mp, Unit.Operation.PeriodTaskOperation, pto, true, pto.Operation().HasLotSize() ) 
 | 
      ptoonetime := counter( mp, Unit.Operation.PeriodTaskOperation, pto, true, pto.Operation().HasOneTimeCost() );  
 | 
      inputlot := counter(  mp, Unit.Operation.PeriodTaskOperation.DependentDemand, dd, dd.ProductInStockingPointInPeriodPlanning().ProductInStockingPoint_MP().HasInputLotSize() )  
 | 
      ptominqty := counter( mp, Unit.Operation.PeriodTaskOperation, pto, true, pto.Operation().HasMinimumQuantity() );  
 | 
      hassmooth := exists( mp, StrategyMacroPlan.StrategyLevelMacroPlan.KPIWeightMacroPlan, k, true, k.KPIName() ~ 'mooth' ) 
 | 
      hasblend := exists( mp, StrategyMacroPlan.StrategyLevelMacroPlan.KPIWeightMacroPlan, k, true, k.KPIName() ~ 'lending' ) 
 | 
      hasmix := exists( mp, StrategyMacroPlan.StrategyLevelMacroPlan.KPIWeightMacroPlan, k, true, k.KPIName() ~ 'mix' )  
 | 
      postponenr := sum( mp, SalesSegment_MP.SalesDemandInPeriod, sdip, sdip.CanBePostponed(), sdip.PostponementSpecification().MaxPostponementPeriod() )  
 | 
      nrlevel := mp.StrategyMacroPlan().MaxActiveLevel();  
 | 
      periods := counter( mp, PlanningPeriod, p, true, not p.IsHistorical() ) 
 | 
      products := counter( mp, Product_MP, p, true, true ) 
 | 
      spoints := counter( mp, StockingPoint_MP, s, true, true );  
 | 
      pisp := counter(  mp, Product_MP.ProductInStockingPoint_MP, pisp, true, true )  
 | 
      up := counter( mp, Unit.PlanningUnitPeriod, up, true, true ) 
 | 
       
 | 
      sep := '_';  
 | 
      msg := 'pispip:' + [String]pispip + sep + 
 | 
             'sdip:' + [String] sdipcount + sep +  
 | 
             'pit:' + [String] pit + sep +  
 | 
      'ptocount:' + [String]ptocount + sep +   
 | 
      'triplot:' + [String]triplot + sep + 
 | 
      'ptolot:' + [String]ptolot + sep + 
 | 
      'ptoonetime:' + [String]ptoonetime + sep + 
 | 
      'inputlot:' + [String]inputlot + sep + 
 | 
      'ptominqty:' + [String]ptominqty + sep + 
 | 
      'hassmooth:' + ifexpr( hassmooth, 'true', 'false' ) + sep + 
 | 
      'hasblend:' + ifexpr( hasblend, 'true', 'false' ) + sep + 
 | 
      'hasmix:' + ifexpr( hasmix, 'true', 'false' ) + sep + 
 | 
      'postponenr:' + [String]postponenr + sep + 
 | 
      'nrlevel:' + [String]nrlevel + sep + 
 | 
      'periods:' + [String]periods + sep + 
 | 
      'products:' + [String]products + sep + 
 | 
      'sp:' + [String]spoints + sep + 
 | 
      'pisp:' + [String]pisp + sep + 
 | 
      'up:' + [String]up + sep 
 | 
       
 | 
      runcontext.Run().Comment( msg );  
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |