1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  Method ValidateLevels ( 
 |    output String feedback_o, 
 |    structured[shadow[KPIWeight]] kpis 
 |  ) as Boolean id:Method_DialogCreateEditStrategy_ValidateLevels 
 |  { 
 |    #keys: '[146140.1.1703773120]' 
 |    Body: 
 |    [* 
 |      //Checks for discontinuity in the level sequence 
 |      uniquevalues := selectuniquevalues( kpis,  
 |                                          Elements,  
 |                                          weight, 
 |                                          weight.Level() > 0, 
 |                                          weight.Level() ); 
 |       
 |      sortedvalues := selectsortedset( uniquevalues,  
 |                                       Elements,  
 |                                       level, 
 |                                       true, 
 |                                       level ); 
 |       
 |      if( uniquevalues.Size() > 0 )   // There is at least a goal activated. We allow the optimizer run without any goal too. 
 |      { 
 |        maxlevel := sortedvalues.Element( sortedvalues.Size() - 1 ); 
 |       
 |        if( sortedvalues.Size() <> maxlevel ) 
 |        { 
 |          levels := sortedvalues.ToString( ', ' ); 
 |          feedback_o := Translations::Strategy_ValidateInput_IsLevelContinuous( levels ); 
 |        } 
 |      } 
 |       
 |      return feedback_o = ''; 
 |    *] 
 |    Declarative: true 
 |  } 
 |  
  |