Cette rubrique décrit les différences entre les fonctions de série chronologique et les fonctions de filtre et explique comment utiliser les fonctions de filtre. Ces informations s'appliquent aux classeurs et aux tableaux de bord classiques.
Fonctions de série chronologique par rapport aux fonctions de filtre
Les fonctions de série chronologique Ago
et Todate
permettent de créer facilement des mesures pour effectuer des calculs du type year-ago, year-to-date
, etc. Cette méthode fonctionne bien pour les rapports destinés aux utilisateurs professionnels. Toutefois, ces fonctions génèrent des interrogations complexes qui ont une incidence significative sur la performance. De plus, chaque fois que l'une de ces fonctions est utilisée dans un rapport, une sous-interrogation supplémentaire est générée, utilisant encore plus de ressources dans la base de données.
Dans les tableaux de bord classiques, au lieu d'utiliser des fonctions de série chronologique, vous pouvez utiliser des mesures de base avec la fonction Filter
pour filtrer la période appropriée. Vous obtenez généralement les mêmes résultats. Cette méthode peut s'avérer trop complexe pour les rapports destinés aux utilisateurs professionnels, mais elle fonctionne parfaitement dans les tableaux de bord prédéfinis par l'équipe informatique. Avec cette méthode, le code SQL physique généré est beaucoup plus simple et efficace et il ne nécessite aucune sous-interrogation supplémentaire. Par conséquent, l'interrogation SQL est plus rapide et utilise moins de ressources dans la base de données, réduisant ainsi l'utilisation globale d'UC et les appels d'entrée-sortie de la base de données.
L'illustration suivante présente un exemple de l'interrogation physique qui est générée lorsque vous utilisez la mesure de base et la mesure Month Ago
dans le même rapport. Deux interrogations sont générées.
L'illustration suivante présente le code SQL qui est généré pour une interrogation simple lorsque vous utilisez une fonction Filter
à la place.
Mettre en oeuvre des fonctions de filtre dans un tableau de bord avec des invites
Dans la plupart des mises en oeuvre, le tableau de bord comprend déjà une invite et les utilisateurs peuvent sélectionner le mois qui les intéressent. La première étape consiste à identifier les périodes que vous devez filtrer en fonction de la sélection de l'utilisateur.
Dans cet exemple, la dimension de calendrier comprend la colonne Julian Period Number
, car cela facilite le calcul. Il est également possible de ne pas utiliser de colonne Julian Period Number
, mais cela nécessiterait des formules beaucoup plus complexes pour calculer la période sélectionnée.
Month
pour ajouter la variable de présentation (MonthSelected
).
Julian Period Number
correspondante et la placer dans une autre variable (PeriodNumberSelected
). Cette seconde invite n'apparaît pas pour l'utilisateur final. Elle est masquée dans le tableau de bord et la valeur est calculée automatiquement en fonction de la variable MonthSelected
.
Julian Period
.
Month
et utilisez les fonctions de filtre des formules de colonne en fonction de Julian Period Number
, le cas échéant. Voici quelques exemples :
Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})
Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)
Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)
Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})
Mettre en oeuvre les fonctions de filtre dans un classeur avec des paramètres
Vous pouvez appliquer le même principe pour un classeur. À la place des invites et des variables de présentation, un filtre de tableau de bord et des paramètres sont utilisés.
Créez trois paramètres : MonthSelected, PeriodNumberSelected et YearSelected. Seul le paramètre MonthSelected apparaît dans le canevas d'un filtre de tableau de bord.
Les valeurs possibles pour le paramètre MonthSelected sont définies en fonction d'une interrogation SQL logique qui sélectionne tous les mois.
Pour les paramètres PeriodNumberSelected et YearSelected, les valeurs possibles ne sont pas alimentées.
.jpg
Seule la valeur initiale est alimentée au moyen d'une interrogation logique filtrée sur la base de la valeur de MonthSelected.
.jpg