Les invites BO – part V – Utilisation avancée : Désactiver une invite

On l’a vu, les invites permettent d’avoir des états « paramétrables », ce qui permet de personnaliser les données en fonction des destinataires.

Par exemple on peut avoir un rapport donnant le chiffre d’affaire par région, avec le détail par magasin. Un rapport personnalisé est envoyé aux responsables de région, grâce à l’invite.

Mais en pratique on a aussi besoin d’un rapport global, qui donne les résultats de toutes les régions. Ce rapport serait envoyé à d’autres personnes. Mais la structure, le format resteraient les mêmes, on aurait la même requête mais sans l’invite.

On est donc amenés à avoir un autre rapport, sans invite. Cela pose évidemment un problème de double maintenance, dès qu’on modifie un rapport il faut penser à répercuter les évolutions sur l’autre …

On peut éviter cette problématique en permettant de désactiver l’invite dans certains cas et en gardant le même rapport et la même requête.
Cette fonctionnalité est implémentée à partir de la XI R3, mais il est possible de la simuler dans les versions antérieures de la manière suivante :

Il faut rajouter une valeur spécifique pour l’invite, qui correspond à toutes les valeurs possibles. Cette valeur est à définir et à communiquer aux utilisateurs, on peut prendre « * » ou « TOUT » ou « ALL » …. Ensuite on rajoute une condition sur cette valeur combinée avec un OU.

Cela donne en SQL :

( maTable.region in @Variable('Region') or 'TOUT' in @Variable('Region') )

Ici si on entre TOUT pour l’invite, la requête prendra toutes les régions, en effet la 2ème condition sera toujours vérifiée.
Bien sûr, il n’y a pas de région « TOUT » …

Pour implémenter cette solution sous BO, on peut :

  • créer un objet spécifique, dont la formule est « TOUT », sans table associée
  • créer un filtre prédéfini

Remarques :

  • il existe d’autres solutions, mais je trouve que c’est la plus simple et la plus compréhensible pour une invite à valeurs multiples
  • il vaut mieux utiliser le @Prompt pour la compatibilité avec Webi, ici j’ai pris le @Variable pour simplifier le code.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>