Quintiq file version 2.0 #parent: #root Method FilterDataOnSelectedLabels ( shadow[KpiSnapshotSetData] queryResult, structured[KpiLabelValue] labelFilters, Boolean isLabelFilteringEnabled ) as String id:Method_GlobalStateKpiTracker_FilterDataOnSelectedLabels { #keys: '[146874.0.1589192311]' Body: [* // Copies the source data from DataHolderSnapshotSetData to DataHolderLabelFilterdSnapshots // while filtering based on the selected Labels. filter := ""; if ( not isnull( queryResult ) ) { if ( isLabelFilteringEnabled ) { filters := construct( Strings ); traverse( labelFilters, Elements.Label, label ) { values := construct( Strings ); traverse( label, Value, value, exists( labelFilters, Elements, selected, selected = value ) ) { values.Add( 'exists( object, Label, l, l.Name() = "' + label.Name() + '" and l.Value() = "' + value.Value() + '") ' ); } filters.Add( '(' + values.ToString( ' or ' ) + ')' ); } filter := filters.ToString( ' and ' ); debuginfo( ' >>> Generated Label filter = ', filter ); } } return filter; *] }