Recherches populaires :

Filtres de requête, filtres de rapport, contrôles d’entrée : lequel utiliser dans Web Intelligence ?

Query Filters vs Report Filters vs Input Controls: Which One to Use in Web Intelligence


Versions concernées : BI 4.2, 4.3, BI 2025 · Temps de lecture : 9 min

En résumé. Web Intelligence propose trois façons de filtrer des données, qui n’agissent pas au même moment. Le filtre de requête agit avant le chargement : il devient une clause WHERE et réduit les lignes ramenées de la base. Le filtre de rapport agit après : il masque des lignes déjà chargées, dans un rapport, une section ou un bloc. Le contrôle d’entrée est un filtre de rapport interactif, manipulé par le lecteur. Choisir le mauvais mécanisme coûte en performance, en lisibilité ou en justesse des totaux.

Chaîne de traitement Webi : base de données, requête, cube du document, rapport, lecteur ; le filtre de requête agit avant le chargement, le filtre de rapport et le contrôle d'entrée après
Figure 1 — Où agit chaque mécanisme dans la chaîne de traitement.

Tableau comparatif

Filtre de requête Filtre de rapport Contrôle d’entrée
Moment Avant le chargement (SQL) Après le chargement Après le chargement
Portée Tout le document (le fournisseur) Rapport, section ou bloc Un ou plusieurs blocs, ou tout le rapport
Volume de données Réduit Inchangé Inchangé
Interactif pour le lecteur Via une invite (nécessite une actualisation) Non (sauf barre de filtres) Oui, instantané
Effet sur les totaux Les totaux ne voient que les données filtrées Les totaux du bloc suivent le filtre ; In Report ignore les filtres de bloc Idem filtre de rapport
Coût performance Le plus faible Recalcul du bloc Recalcul à chaque clic
Cas d’usage Périmètre : exercice, entité, statut Vues fixes : « top 10 », un onglet par pays Exploration par le lecteur

La règle de choix en une phrase

Tout ce qui ne sera jamais affiché va dans un filtre de requête ; tout ce qui sert à présenter différemment les mêmes données va dans un filtre de rapport ; tout ce que le lecteur doit pouvoir changer sans actualiser va dans un contrôle d’entrée. Quand le lecteur doit changer le périmètre lui-même mais que le volume total est trop gros pour être chargé, la réponse est une invite sur un filtre de requête, pas un contrôle d’entrée.

Arbre de décision : la donnée sera-t-elle affichée un jour ? Non : filtre de requête. Oui : le lecteur doit-il changer le filtre ? Non : filtre de rapport. Oui : le volume est-il chargeable ? Oui : contrôle d'entrée. Non : invite
Figure 2 — Arbre de décision entre les quatre mécanismes.

Filtres de requête : ce qu’il faut savoir

  • Invites : un filtre de requête dont la valeur est demandée à l’actualisation. Elles peuvent être obligatoires ou optionnelles, à valeur unique ou multiple, avec liste de valeurs ou saisie libre. Une invite optionnelle laissée vide est simplement ignorée dans le SQL.
  • Filtres prédéfinis de l’univers : des conditions écrites une fois dans l’univers (« Exercice en cours », « Clients actifs ») et réutilisables partout. Ils garantissent une définition unique du périmètre dans toute l’organisation.
  • Sous-requêtes et « résultats d’une autre requête » : pour filtrer une requête par les valeurs d’une autre (les clients qui ont commandé l’an dernier). Puissant, mais chaque niveau ajoute une passe SQL.
  • Combinaisons ET / OU : l’imbrication se fait par glisser-déposer dans le panneau ; vérifiez toujours le SQL généré (Afficher le script), une parenthèse mal placée change silencieusement le périmètre.
  • Filtrer sur une mesure : possible, mais le filtre devient une clause HAVING appliquée au niveau d’agrégation de la requête, pas du bloc affiché. « CA > 10 000 » ne signifie pas la même chose par client et par ligne de commande.
Éditeur de requêtes Web Intelligence avec un filtre de requête sur l'année alimenté par une invite
Figure 3 — Le filtre de requête s’applique avant le retour des données : il réduit le volume transféré, donc il est en amont de tout ce que fait le rapport.

Le plus simple pour vérifier ce qu’on vient d’écrire est de regarder le SQL produit. Dans BI 2025, le Visualiseur du script de requête est la dernière icône de la barre d’outils de l’éditeur de requêtes — elle n’apparaît que pour une requête adossée à un univers, une source Excel ne générant pas de SQL. Deux filtres de requête posés sur des objets différents y ressortent sous la forme d’une clause WHERE unique, avec IN pour la liste de valeurs et AND entre les conditions.

Visualiseur du script de requête de BI 2025 : le SQL généré, avec la clause WHERE issue des deux filtres de requête et un GROUP BY
Figure 4 — Les deux filtres de requête sont devenus une seule clause WHERE, avec IN et AND. Le GROUP BY dit le reste : l’agrégat est calculé par la base, pas par Web Intelligence. Rien n’est ramené au poste qui ne soit déjà filtré et agrégé.

Le GROUP BY mérite qu’on s’y arrête : c’est la base de données qui agrège, pas Web Intelligence. Rien n’est ramené au poste qui ne soit déjà filtré et agrégé — c’est toute la différence avec un filtre de rapport, qui masque des lignes déjà chargées. Au passage, le nom de table qui apparaît dans le FROM est souvent celui d’un agrégat pré-calculé choisi par l’univers en fonction des objets demandés : la couche sémantique ne se contente pas de traduire, elle oriente la requête vers la table la moins coûteuse.

Filtres de rapport : les trois niveaux

Un filtre de rapport peut être posé sur le rapport entier (tous les blocs de l’onglet), sur une section, ou sur un seul bloc. Les niveaux se cumulent en ET : un bloc filtré sur « France » dans un rapport filtré sur « 2026 » n’affiche que la France 2026. Deux formes existent :

  • La barre de filtres (filtres simples) : rapide à poser, visible du lecteur, une valeur à la fois.
  • Les filtres personnalisés : opérateurs complets (entre, différent de, correspond au modèle), plusieurs valeurs, filtres sur variables. C’est ici que l’on écrit « les 10 premiers » ou « écart < 0 ».
Boîte Filtre de rapport de BI 2025 : l'arborescence document, rapport et blocs à gauche, le filtre du niveau sélectionné à droite
Figure 5 — Les trois portées dans une seule boîte : l’arborescence document / rapport / bloc à gauche, et à droite les filtres du niveau sélectionné. Un filtre posé sur le rapport suit tous les blocs ; un filtre posé sur un bloc ne bouge pas de ce bloc.

Point important : un filtre de rapport ne modifie pas le contexte de calcul. Sum([CA] In Report) continue de voir toutes les lignes chargées, même dans un bloc filtré, ce qui est exactement ce qu’il faut pour calculer une part du total. Pour qu’un calcul respecte un filtre, on utilise l’opérateur Where dans la formule (voir notre guide des contextes de calcul).

Contrôles d’entrée : le filtre côté lecteur

  • Types : liste déroulante, boutons radio, cases à cocher, curseur simple ou double (pour les mesures), calendrier. Le choix se fait selon le nombre de valeurs et le type de l’objet.
  • Affectation : un contrôle s’applique à un bloc, à plusieurs blocs choisis, ou à tout le rapport. C’est la source d’erreur numéro un : un contrôle qui ne filtre que le tableau, pas le graphique à côté.
  • Dépendances : un contrôle peut dépendre d’un autre (région → pays → ville), ce qui réduit les listes à des valeurs cohérentes.
  • Contrôles basés sur un bloc : un tableau ou un graphique peut lui-même servir de contrôle (« cliquer sur une barre filtre le reste du rapport »). C’est ce qui rapproche le plus Webi d’un tableau de bord natif.
  • Valeurs par défaut et « Tout » : définissez-les explicitement ; un contrôle sans valeur par défaut affiche tout, ce qui masque son existence au lecteur.
Création d'un contrôle d'entrée dans BI 2025 : objet, cible du filtre bloc par bloc, et type de contrôle
Figure 6 — Un contrôle d’entrée se définit en une seule boîte : l’objet, la cible du filtre bloc par bloc, et le type de contrôle. C’est la cible qui décide si le lecteur pilote tout le rapport ou un seul tableau.
Rapport Web Intelligence filtré par un contrôle d'entrée sur le pays : tableau, indicateur calculé et graphique suivent la sélection
Figure 7 — Une seule sélection dans la barre de filtres, et le tableau, l’indicateur calculé et le graphique suivent ensemble. C’est ce que le filtre de requête ne sait pas faire sans réexécuter la requête.

Cinq pièges classiques

Symptôme Cause Correction
Le rapport est lent alors qu’il n’affiche que 200 lignes Le périmètre est posé en filtre de rapport, tout est chargé Déplacer le filtre dans la requête
Le pourcentage du total change quand on filtre le bloc Le dénominateur est calculé dans le contexte du bloc Utiliser In Report ou In Block selon le besoin
Le contrôle d’entrée ne filtre pas le graphique Affectation limitée au tableau Modifier les dépendances du contrôle
Rien ne s’affiche après un filtre Filtres cumulés rapport + section + bloc incompatibles Ouvrir le panneau des filtres, vérifier chaque niveau
Le document s’actualise à chaque ouverture sans rien demander Invite optionnelle + « actualiser à l’ouverture » Rendre l’invite obligatoire, ou désactiver l’actualisation à l’ouverture

Questions fréquentes

Peut-on combiner un contrôle d’entrée et un filtre de requête sur le même objet ?
Oui. Le filtre de requête fixe le périmètre maximal (par exemple les trois derniers exercices), le contrôle d’entrée laisse le lecteur choisir l’exercice à afficher parmi ceux chargés.

Un filtre de rapport peut-il porter sur une mesure ?
Oui, et il s’applique à la valeur agrégée dans le bloc : « CA > 10 000 » sur un tableau par client garde les clients dont le total dépasse 10 000. Le même filtre en requête porterait sur l’agrégation SQL, souvent différente.

Les contrôles d’entrée sont-ils conservés à l’enregistrement ?
La définition oui ; la sélection courante dépend de l’option d’enregistrement et de la version. Fixez une valeur par défaut si le rapport doit toujours s’ouvrir sur la même vue.

Un filtre de rapport change-t-il le résultat de Sum([CA] In Report) ?
Non pour un filtre de bloc ou de section ; oui pour un filtre au niveau du rapport entier, qui définit le périmètre « Report ».

Pour aller plus loin. Les contrôles d’entrée sont la limite de l’interactivité native de Webi : des listes et des curseurs. Les widgets N4V FOR WEBI s’alimentent directement des blocs du document et suivent donc vos filtres et contrôles d’entrée, tout en ajoutant le filtrage par clic dans le graphique, le drill et la navigation croisée entre visualisations. Documentation · Essai gratuit.

Sources et références

👉 Découvrez Need4Viz et ce que nous apportons vraiment à SAP Web Intelligence

Need4Viz étend SAP Web Intelligence avec des capacités avancées de dataviz, d'interactivité, d'automatisation et d'IA pour transformer vos rapports en véritables outils de pilotage.

Découvrir Need4Viz
×
×