Services

Optimiser le temps de rafraîchissement dans Web Intelligence

Temps de rafraichissements trop longs ?

Les clés pour vous permettre d’optimiser les requêtes de votre document Web Intelligence

« Ce rapport met beaucoup de temps à se rafraîchir. » Une phrase trop souvent entendue au sein de la cellule TMA DeciVision, ou plus généralement dans les équipes BI. Le temps de rafraîchissement d’un document Web Intelligence est un enjeu majeur, car il impacte aussi bien l’utilisation directe sur la plateforme SAP BusinessObjects (SAP BO) que les processus de planification et de publication.

Les développeurs de documents Web Intelligence et les administrateurs SAP BusinessObjects sont régulièrement confrontés à des temps de rafraîchissement excessifs, ce qui peut nuire à l’efficacité de la plateforme BI. Les données attendues pour 9 h sont encore en cours de traitement : les équipes opérationnelles n’ont pas accès à la liste des livraisons du jour, le contrôle de gestion ne dispose pas des données de la veille, et les décideurs manquent de KPI pour leurs réunions.

C’est pour répondre à ces problématiques que l’optimisation du temps de rafraîchissement doit être une priorité lors du développement d’un nouveau document WebI. Dans cet article, nous analysons le cas concret d’une opération TMA de maintenance préventive : l’optimisation d’un document dont le temps de rafraîchissement était anormalement long, au regard du nombre de lignes remontées par les requêtes BO.

Première analyse : vérification des requêtes et des objets

Les exemples présentés dans les chapitres suivants proviennent d’une plateforme SAP BusinessObjects 4.3 SP4 patch10. Le document concerné, ainsi que plusieurs de ses versions, présentent une durée de rafraîchissement anormalement élevée. Pour analyser les métadonnées des requêtes alimentant le document Web Intelligence, nous créons un nouveau rapport et y ajoutons une cellule de type « résumé de la requête ».

Résumé de la requête SAP BusinessObjects

Cette cellule affiche des informations relatives aux différentes requêtes BO qui alimentent le document. Les deux requêtes identifiées se nomment « Flux » et « Événement ».

Requête flux et événements

On observe que la requête n° 1 (« Flux ») ne remonte que quelques dizaines de lignes, mais que son exécution dure 158 secondes. La requête n° 2 (« Événement »), quant à elle, s’exécute en 2 secondes et remonte 1900 lignes environ. C’est donc sans nul doute la requête « Flux » qui est responsable de la durée de rafraîchissement anormale du document.

Analysons ces deux requêtes dans l’éditeur de requêtes BO.

Editeur de requêtes BusinessObjects

La requête « Flux » utilise des objets issus de la classe « FLX » de l’univers source. Cependant, on note la présence de l’objet « EVT – Montant », qui appartient en réalité à la classe « EVT ». Bien que ce comportement soit classique, il mérite ici une attention particulière, car la requête « Événement » utilise également des objets de cette classe, dont « EVT – Montant ».

Requête flux EVT Montant

Cet objet est donc présent dans les deux requêtes. La question se pose : l’objet « EVT – Montant » issu de la requête « Flux » est-il réellement indispensable au document Web Intelligence ?

Pour vérifier son utilisation, il faut contrôler sa présence dans les éléments suivants :

  • Dans un visuel (tableau, cellule, diagramme…)
  • Dans un en-tête ou un pied de page
  • Dans un filtre (de document, de rapport, de visuel, contrôle d’entrée)
  • Dans un saut ou une section
  • Dans une ou plusieurs variables et bien d’autres…

Ce processus peut être très chronophage, surtout pour des documents complexes. Dans notre cas, l’analyse révèle que l’objet « EVT – Montant » provenant de la requête « Flux » n’est pas utilisé dans le document, contrairement à celui issu de la requête « Événement ».

À noter : lorsqu’un même objet est présent dans deux requêtes BO, son nom est automatiquement préfixé par celui de la requête source. Dans notre exemple, il existe donc un objet « Flux.EVT – Montant » et un objet « Événement.EVT – Montant ». Seul ce dernier est utilisé, ce qui confirme que « Flux.EVT – Montant » est superflu.

Nous supprimons cet objet de la requête « Flux » et rafraîchissons le document.

Suppression des objets de la requête flux

Le temps de rafraîchissement passe désormais à 1 seconde : cet objet était donc bien à l’origine des performances anormales du document !

Mais existe-t-il d’autres objets superflus dans ce document ? Si l’optimisation actuelle est satisfaisante en termes de performances, est-elle pour autant exhaustive ?

Restons connectés !

Inscrivez-vous à la newsletter DeciVision !

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !

L’outil intégré SAP BusinessObjects : l’optimiseur de requêtes

Pour identifier les objets superflus dans un document, il est nécessaire d’analyser leur utilisation. SAP BusinessObjects propose une fonctionnalité dédiée : l’optimiseur de requêtes (ou « Query Stripping »), qui automatise cette vérification. Cette option est disponible sur SAP BO XI, 4.X ainsi que BI 2025.

Nous repartons d’une version initiale de notre document WebIntelligence d’exemple, c’est-à-dire qui n’a pas encore bénéficié de l’optimisation présentée auparavant (suppression de l’objet Flux.EVT – Montant par le développeur). Sa durée d’actualisation est donc toujours de 158s.

Pour activer l’option d’optimisation des requêtes, rendez-vous dans l’éditeur de requêtes BO, puis dans le menu des options de requêtes.

Optimisation des requêtes SAP BusinessObjects

Cochez ensuite le bouton « optimiseur de requêtes » en bas de la fenêtre d’options.

Optimiseur de requêtes Web Intelligence

Activez-le sur toutes les requêtes à analyser, puis rafraîchissez le document. Attention : pour que cette option soit accessible dans un document Web Intelligence, elle doit d’abord être activée dans l’univers source, dans l’onglet « options de la requête » de la couche de gestion, sous le nom « Autoriser la suppression de requête ».

Web Intelligence : Options de la requête

Le résultat est visible dans la cellule de synthèse des requêtes :

Synthèse des requêtes Query Stripping

Le mode d’optimisation des requêtes est bien activé (Query Stripping : ON).

La durée de la dernière exécution est de 1 seconde : l’optimisation a fonctionné. Mais que s’est-il passé exactement ?

Examinons les objets de ce document, par exemple les dimensions de la requête « Flux » :

Dimensions de la requête Flux

Les indicateurs de cette même requête :

Indicateurs requêtes EVT Montant

Ou bien les variables du document :

Variables du document transactions

Les objets en police standard (pointés en vert) sont ceux utilisés pour la construction et l’affichage du document.

Les objets en gras (pointés en rouge) sont superflus et peuvent être supprimés. On remarque par ailleurs que l’objet Flux.EVT – Montant a bien été mis en évidence par l’optimiseur de requêtes. Il nous a aussi permis de détecter de nombreux autres objets superflus, ainsi qu’une variable qui n’est pas utilisée dans le document.

Type de données et flux de requête

Lorsque vous passez votre souris sur un objet en gras, Web Intelligence indique que « cet objet a été enlevé de la requête ». Cette phrase est ambiguë : s’agit-il de la requête BO ou de la requête SQL sous-jacente ? Une vérification dans l’éditeur de requêtes montre que les objets superflus identifiés par l’optimiseur restent présents dans la requête BO, mais ont été supprimés de la requête SQL générée.

Visualisateur du script de requête

Cette option entraîne donc une incohérence visuelle : les objets restent visibles dans la requête BO (marqués d’une croix rouge), mais sont absents de la requête SQL. Pour corriger cette anomalie, le développeur doit supprimer manuellement des requêtes BO les objets mis en évidence (en gras dans le document).

Limites : l’optimiseur de requêtes ne fonctionne pas si la requête BO est trop complexe. Le développeur doit donc garder à l’esprit que cette option, bien qu’efficace, nécessite toujours une intervention humaine pour nettoyer les requêtes BO et supprimer les objets superflus, ou simplement parce que l’option n’a pas pu analyser et optimiser le SQL.

RapidViews : l’optimisation à l’échelle de votre plateforme SAP BusinessObjects

Chez DeciVision nous travaillons en étroite collaboration avec notre partenaire RapidViews. Il a développé via sa plateforme « Bi Smart Repository » de nombreux connecteurs permettant d’exploiter les métadonnées de votre plateforme BI. Le connecteur SAP vous permet notamment de cartographier et d’auditer les plateformes BusinessObjects.

L’outil de RapidViews est capable d’auditer la totalité des documents d’une plateforme et de mettre en évidence au global ou par document la liste des objets inutilisés dont le nettoyage permettrait d’optimiser les temps de rafraichissements. Avec l’aide de cet outil, nous pouvons donc appliquer le cas d’usage présenté dans cet article, non seulement à l’échelle d’un document Web Intelligence en particulier, mais à tous les documents présents sur la plateforme.

Audit Global des objets inutilisés d’une plateforme SAP BusinessObjects

RapidViews : optimisation plateforme SAP BusinessObjects
Audit global des objets inutilisés - SAP Business Objects : RapidViews

Audit détaillé des objets inutilisés d’un rapport Web Intelligence

Data Search RapidViews : KPI
Audit détaillé des objets inutilisés - rapport Web Intelligence : RapidViews

CONCLUSION DE L’EXPERT

L’optimisation du temps de rafraîchissement d’un document Web Intelligence repose sur une analyse rigoureuse des requêtes et des objets SAP BO utilisés. Les outils intégrés ou tiers sont précieux, mais leur utilisation doit être complétée par une vérification manuelle pour garantir des performances optimales. Les experts de la cellule TMA DeciVision peuvent vous aider à améliorer les performances de vos documents Web Intelligence et assurer la réactivité de votre plateforme BI grâce à nos interventions de maintenances préventives.

Inscrivez-vous gratuitement à notre prochaine démo sur la solution

Articles récents
Évènements à venir
Newsletter DeciVision

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !