Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetKPI ( 
 | 
  LibOpt_Task task 
 | 
) as owning RealVector 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    The method that returns the KPI used to rollback on. 
 | 
    We use a `RealVector` to represent multiple KPI levels. 
 | 
    The first value in the `RealVector` (the one with index 0) is more important than the one with index 1. 
 | 
    Rollback is determined by comparing the 2 `RealVectors` representing the KPIs. 
 | 
    If the first value is different, we know whether to rollback or not. 
 | 
    If and only if they are equal, we continue looking at the value with index 1. 
 | 
    We continue until we find an index on which the values are different or until we have no more values. 
 | 
     
 | 
    Note: if you are using declarative attributes / methods / whatever, you need to propagate them before sending the value. 
 | 
    Note: the given task can be null. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    result := RealVector::Construct(); 
 | 
     
 | 
    return & result; 
 | 
  *] 
 | 
} 
 |