| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetKPIServiceLevel () const declarative remote as Real | 
| { | 
|   Description: 'Return the average planned percentage of service levels' | 
|   TextBody: | 
|   [* | 
|     // edz1 Jul-14-2016 (created) | 
|     totaldemandinsls := sum( this, AllServiceLevelBase, sl, | 
|                              sl.IsEnabled() | 
|                              and sl.IsUsedForSafetyStockCalculation() | 
|                              and sl.End() >= this.GlobalParameters_MP().GetStartOfKPIHorizon() | 
|                              and sl.Start() <= this.GlobalParameters_MP().GetEndOfKPIHorizon(), | 
|                              sl.TotalDemandQuantity() ) | 
|     value := 0.0; | 
|     if( totaldemandinsls > 0.0 ) | 
|     { | 
|       // Calculated the weighted average service level (weighted by demand per service level) | 
|       value := sum( this, AllServiceLevelBase, sl,  | 
|                     sl.IsEnabled() | 
|                     and sl.IsUsedForSafetyStockCalculation() | 
|                     and sl.End() >= this.GlobalParameters_MP().GetStartOfKPIHorizon() | 
|                     and sl.Start() <= this.GlobalParameters_MP().GetEndOfKPIHorizon() , | 
|                     sl.TotalFulfilledQuantity() / totaldemandinsls  ); | 
|     } | 
|                     | 
|     return 100 * value; | 
|   *] | 
| } |