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 }