Caveat : Comme dirait Kooorrg, « cet article contient 80% de râlage. »

Caveat (bis) : Ce billet est à très haute teneur en informatique d’entreprise.

Ce qu’est BO

Business Objects (« BO » pour les intimes) est un outil très connu des services dirigeants, financiers et informatiques des entreprises, endroits où l’on adore faire beaucoup de tableaux avec énormément de chiffres et de graphiques.

Le concept le plus intéressant du produit réside dans l’« univers », une « couche sémantique »™© entre les objets de la base de données et les requêtes de l’utilisateur. Cet univers contient tout bêtement le modèle de données de la base de données sous-jacente, quelques formules, filtre des données par utilisateur, et autres raffinements.

À l’écran l’utilisateur « de base » ne voit plus que des objets « facture », « client », « chiffre d’affaire »... et BO s’occupe de toutes les jointures, filtres, regroupements, et nombreuses autres astuces.

Une requête impliquant des objets « Code client », « Région » et « Chiffre d’affaire » avec un filtre « Année en cours », objets qu’il suffira de glisser dans la fenêtre adéquate, mènera automagiquement à une requête du genre de :

SELECT CLIENTS.CODE,
ADRESSE.REGION,
SUM(COMMANDES.CA)
FROM CLIENTS, COMMANDES
WHERE CLIENTS.ID = COMMANDES.CLIENT_ID
AND TO_CHAR(COMMANDES.DATE,'YYYY')=2008
GROUP BY CLIENTS.CODE, ADRESSE.REGION ;

...avec possibilité éventuellement ensuite de « zoomer » de la région au département au magasin au sous-rayon. Les données sont en mémoire ou ramenées par une nouvelle requête.

La mise en page peut être assez complexe et les calculs très poussés, Excel est totalement enfoncé — mais parfois utilisé pour raffiner ou formater.

Il est possible de mélanger et croiser (« synchroniser » ) des données issues de bases (univers) différents.

Pour de bonnes performances et une maintenance acceptable de l’univers, des bases de données dédiées (datawarehouse avec schéma en étoile dénormalisé) sont conseillées.

S’ajoutent encore un « référentiel», c’est-à-dire une base de données comprenant les univers et des documents, pour verrouiller l’accès et garantir la cohérence des évolutions, ainsi qu’un « portail » web pour manipuler, gérer et distribuer la masse de rapports que les utilisateurs vont s’empresser de pondre en masse.

BO domine son secteur, et le fait payer fort cher à ses clients. Les alternatives libres ne sont pas encore au niveau mais commencent à être envisageables (JasperReports, BIRT...).

Je connais la version 5 de BO, un peu la 6, et la dernière XI R2 SP3 (on sent dans ce nom l’influence de Microsoft, dont BO est un équivalent français indéniable sur tous les plans) en versions « client lourd » et « Webi » (ie « full web » sans logiciel client sur le poste).

De l’ergonomie et de la philosophie

Soyons clair : BO n’est pas arrivé au même degré d’incohérence ergonomique que SAP, ou, bien pire, cette abomination de Lotus Notes v5. BO n’est né qu’en 1990, et évolue depuis toujours dans l’écosystème Windows, l’historique est moins écrasant.

BO a au moins le mérite de permettre à quelqu’un qui connaît sa philosophie et connaît les icônes, ou est simplement curieux d’y fouiller, de faire son travail. La version de BO en « client lourd » (un programme Windows classique) est cependant TRÈS loin de la perfection et de l’application bien léchée. Mais on notera globalement de nets progrès d’ergonomie sur la toute dernière version (« Webi », par le navigateur). La réécriture due au changement de technologie a impliqué une refonte de l’ergonomie globalement très positive... pour peu qu’on arrive au bout du chemin de croix de la migration...

BO est typiquement l’application où le talent ne peut compenser l’expérience et le nombre d’heures passées à faire des rapports un peu complexes et tordus. L’utilisation est une collection d’astuces et de « ah tiens c’est là ce truc ? ». Malheur à celui qui découvre tout sans mentor. Rien de bien différent du reste de l’informatique professionnelle, diront certains. La documentation est plus ou moins pauvre suivant les versions, mais pas indigente.

L’univers est un élément capital. S’il est mal foutu, l’utilisateur récupérera très facilement des données incohérentes. Bien fichu, il fait de la création des rapports un plaisir, et économisera beaucoup de temps à ceux qui auparavant faisaient tous leurs calculs sous Excel.

v5

La version 5 date de 2002, elle est encore utilisée assez fréquemment. (Ajout de 2011 : On est en train d’achever les dernières.) Pour un utilisateur qui n’a pas des besoins énormes, la montée de version n’est pas forcément justifiée. Elle a l’avantage d’être très légère pour les machines actuelles. Elle n’est plus supportée par l’éditeur depuis longtemps, mais certains clients vivent très bien sans support. Les versions 6, 6.5 sont fonctionnellement quasiment identiques.

Je ne vais pas parler des fonctionnalités de base, qui sont là et globalement fonctionnent, avec des bugs occasionnels, mais comme à mon habitude je vais pester sur ce qui gâche la vie au quotidien, et qui se niche souvent dans le détail :

  • Contrairement à Word qui offre des menus pléthoriques doublés de barres d’icônes et triplés de menus contextuels, BO en client lourd offre nombre de fonctionnalités SOIT dans les menus contextuels, SOIT dans les menus principaux, SOIT dans les barres d’icônes. Et la répartition se fait de manière totalement inconsistante.
    Pour formater une cellule, c’est clic droit, SAUF pour régler largeur et hauteur à la main (menu Affichage). La gestion (ajout, suppression, renommage...) des « fournisseurs de données » (les requêtes où l’on définit les objets récupérés) s’effectue à trois ou quatre endroits différents (clic droit, menu, « cube »...).
  • Les boîtes de dialogue sont riquiqui et non extensibles (notamment celle de création des formules, celle de consultation des données ramenées...). En gros, la version de 1991 en 640x480 impose encore son empreinte à l’époque des 19” en 1600x1200 (pour les veinards qui ne bossent pas en SSII). Non, ça n’a pas changé avec les versions suivantes.
    Beaucoup de fenêtres sont modales, un problème sérieux pour comparer deux rapports.
  • Parmi les détails énervants, le fournisseur de données n’affiche que le début du nom des objets puis des points. Très pratique quand ils se nomment tous « Montant ci ou ça » ou « Code truc ou machin ». (Problème corrigé dans la dernière version XI Deski.)
  • La sauvegarde et le chargement s’effectuent par défaut dans des répertoires prédéfinis, bien à lui, auxquel BO revient tout le temps. C’est très pénible quand on raisonne par projet et par application...
  • La gestion de la sécurité des documents est intégrée DANS le document. En clair, si un client vous envoie un rapport sans avoir coché la case « Sauver pour tous les utilisateurs » à la sauvegarde, il est impossible de le récupérer, même en possédant l’univers utilisé. Il y avait une faille en v5 (n’importe quel administrateur BO pouvait charger n’importe quel fichier sur sa propre installation). Cette faille a été comblée par la suite.
    Il est donc hautement conseillé de créer toute version intermédiaire ou de développement ou toute archive en cochant la case fatidique, sinon la destruction du document dans le référentiel entraîne le verrouillage définitif des sauvegardes sur disque dur.
    Parmi mille autres conséquences d’une sécurité implémentée d’une manière assez bancale pour faire plaisir aux paranoïaques des tours de la Défense ou New York : si l’univers sur lequel un rapport est basé est indisponible, ou s’il est renommé, il est impossible de voir la requête du document.
    Plus grave : pour changer d’univers sur une requête (pour tester différentes versions dans une phase de développement par exemple), il est obligatoire d’avoir aussi récupéré l’ANCIEN univers avec son ancien nom, sinon il ne le trouve pas (normal) et... refuse d’en changer ! Crispant.
    De plus, en v5, parue pourtant cinq ans au bas mot après Windows 95, BO tient absolument à conserver un nom d’univers de huit (8) lettres. Il est parfois possible de magouiller en renommant un univers APRÈS l’avoir sauvé puis en le rouvrant. Il reste des scories de ce comportement en XI.

    Tout cela pour dire que le travail avec un « référentiel » (base de données SQL contenant l’univers) est hautement conseillé pour contourner certains de ces problèmes.
  • Joie : en v5 on peut accéder en SQL au modèle de données de l’univers stocké dans le référentiel (pour des requêtes de contrôle, un export Excel...), on peut même obtenir par BO une vue sur un univers BO. Excellent ! Voire indispensable pour réaliser la documentation de l’univers.
    Horreur : les rapports par contre ne sont sauvés dans le référentiel que sous la forme d’un LONG informe qui ne peut être lui-même analysé. Sauf à utiliser des macros VBA miraculeusement disponibles sur le web, impossible de récupérer une liste à peu près complète des objets contenus dans une masse de rapports préexistants (dans le cadre d’une étude de migration par exemple).
  • La réutilisation de code (requêtes et formules de calculs) entre différents rapports n’est pas encouragée. Il est déjà beau qu’à partir de la v6 on puisse dupliquer une simple requête au sein d’un document, pour comparer plusieurs modes de calculs légèrement différents par exemple, ou différents paramètres.
    Il est donc conseillé de caser le maximum de « logique fonctionnelle » dans les univers... si vous en avez la maîtrise (ils peuvent être fournis par les éditeurs des autres progiciels comme l’ERP ou la compta).
  • Un autre problème classique qui m’a fait m’arracher les cheveux après que mon client se soit arraché les siens : il existe un temps maximum d’exécution d’une requête au-delà duquel BO se plaint que celle-ci est trop longue, et ne retourne que des résultats partiels, voire rien.
    En fait, une requête BO peut être scindée en deux ordres SQL (c’est normal et souvent pertinent). Et si le premier de ces ordres fait plus de la moitié du temps maximum... le timeout est considéré comme atteint ! Rien que rajouter systématiquement des objets « de contrôle » (date d’alimentation de la base...) peut provoquer ce phénomène !
  • De manière générale, les messages d’erreurs sont très imprécis et abscons. (Ça ne s’est pas arrangé avec Webi...)

XI R2 SP2

Comme dit plus haut, ce système de nommage de version est inspiré directement de celle de Microsoft : actuellement je travaille pour un client sous Business Objects XI Release 2 Service Pack 2 Fixpack 2.6. La nomenclature elle-même n’est pas très stable : les Fixpacks ont succédé aux Hotfixes et MHF, et XI R3 s’appellera en fait « XI 3.0 ».

Il faut bien faire attention aux chemins de migration ; par exemple le SP3 tout récent n’est installable que sur un SP2 jusqu’au FP2.5, sinon il faut aussi ajouter le FP 3.1, qui n’a cependant pas été disponible en même temps que le SP3. Au moment où j’écris, un 2.7 est aussi paru, et un 3.3 aussi. Sachant que le moindre de ces patchs pèsent des dizaines ou centaines de Mo et que l’installation est une orgie de configuration et de manipulation de petits fichers xml, jar et de clés de registres, un essai coûte cher en intervention de prestataire…

Bref, tout cela donne des indices inquiétants sur la manière bureaucratique dont s’effectue le développement...

XI reprend le principe du référentiel mais utilise en fait l’infrastructure développée autrefois pour Crystal Reports (racheté depuis longtemps et maintenu dans XI parallèlement au « BO » classique), avec des conséquences effroyables :

  • La nouvelle infrastructure met en place une flopée de serveurs, dont la configuration est complexe et peu claire. Les documentations d’administration font plusieurs centimètres d’épaisseur.
    On notera une intéressante et piégeuse distinction entre « démarrage » et « activation » d’un service d’arrière-plan. Le démarrage s’effectue par le CCM (Central Configuration Manager), une application Windows. L’activation s’effectue plutôt par le CMC (une console web). Oui, on a bien un CCM et une CMC ; il faut oser. Il existe aussi le CMS (un service maître).
    Comme dans nombre de jeux, l’administration possède des outils cachés que ne trouvera que celui qui fouine partout.
    Bref, cette plate-forme a hérité de Crystal la solidité que suggère le nom...
    (Je me demande souvent si le but n’est pas de maximiser la complexité pour justifier des tarifs délirants et se mettre dans la poche des administrateurs et consultants dont le travail est garanti pour une demi-décennie. La théorie alternative remarque que BO est maintenant Made in India, ce qui n’a jamais été un gage de compacité et d’élégance dans l’architecture.)
  • BO avait déjà tendance à vouloir imposer ses répertoires de travail. À présent il impose carrément de passer par son Infoview (un portail web). On peut encore contourner avec le client Windows, mais pas avec Webi (la version "full web"). Bon, ça se défend.
    L’interface du portail est fort perfectible, et fait à mon sens doublon avec la gestion des sécurités déjà présentes sur des serveurs réseau, éventuellement entre en conflit avec les serveurs web, documentaires et autres déjà en place. Mais le « portail décisionnel » est à la mode, il doit bien se marier avec les masses de documents qu’une administration privée ou publique génère.
    L’ergonomie est basique, loin derrière le simple explorateur de Windows ; ne serait-ce qu’à cause de l’absence de glisser-déplacer et la relative lenteur de l’interface web. Certains libellés sont scandaleux (« Déplacer dans un nouveau répertoire » sert à créer un nouveau répertoire, et/ou à déplacer un rapport dans un répertoire préexistant), et la manipulation des droits est tordue. Le bouton « Supprimer » change de nom, de place, ou devient une simple icône suivant les pages. Autre exemple, l’emplacement de « Modifier » dépend du type de documents (première option pour du Webi, dernière pour du Deski...) : un véritable piège quand on est fatigué.
    Cerise pourrie sur le gâteau, les rapports Webi ne sont plus de simples fichiers copier-collables, il faut se taper toute une procédure d’import-export entre référentiels (histoire de bétonner la cohérence entre documents, droits, univers...).
  • En XI, on perd la possibilité de consulter le modèle de données de l’univers directement dans le référentiel par SQL. Ce qui oblige à des recherches beaucoup plus fastidieuses quand on veut ausculter l’intérieur d’un univers (export Excel par exemple). Là aussi c’est fournir du boulot fastidieux sans fin à des consultants. (Cependant un univers XI est encore à peu près lisible par un BO v5, ce qui permet de contourner le problème... pour le moment.)
    Autre horreur technique à mes yeux, la division des documents entre le référentiel BO dans la base de données (toujours là) qui ne contient plus que les identifiants des documents et leurs relations, et les documents eux-mêmes, cette fois stockés sous forme de fichiers sur le disque dur du serveur lui-même. Le piège est de bien synchroniser la sauvegarde du référentiel SQL et de ces documents, sinon... (On se demande à quoi bon avoir une base de données moderne derrière si on jette par dessus bord toute notion d’intégrité. J’ai du mal à croire les arguments de performances.)
  • Accessoirement et péniblement, XI me plante régulièrement à la tronche. Sous Webi notamment, il existe plein de délais d’expiration qui provoquent des messages d’insultes totalement hors sujet.

Ajout de décembre 2008 : La version XI 3 ne lève pas ces remarques mais améliore tout de même sacrément l’apparence et l’ergonomie de l’interface.

Webi

Le client lourd habituel sous Windows, renommé « Desktop Intelligence » existe toujours — sous la pression insistante des clients, mais il est condamné. BO pousse les utilisateurs de XI à passer à la version web, « webi » (pour Web Intelligence).

Toute l’interface a donc été réécrite en Java (il y a même une version en HTML pur plus limitée, non testée), et l’éditeur en a profité pour revoir de fond en comble l’ergonomie. Les fonctionnalités sont beaucoup mieux réparties, un onglet Propriétés un peu fourre-tout mais bien trié permet de toujours savoir où modifier tel ou tel paramètre. Les barres d’icônes sont notablement allégées, à bon escient, et les menus ont carrément disparu.

La gestion des requêtes est bien plus cohérente et facile. Il y a de gros progrès aussi dans le mode exploration (changement instantané du niveau de détail de l’année au jour, ou du continent à la rue, très pratique pour l’analyse). La gestion des sections de documents est plus claire. La logique qui traite de la « fusion des dimensions » (ie le rapprochement des données de deux sources qui se complètent sans se recouper totalement) est nettement plus carrée. Globalement, tout est d’ailleurs plus carré.

Ah non, il n’y a pas toutes les fonctionnalités du client lourd Windows, même si on en est proche. Les rapports sont compatibles à 90%. Mais certaines astuces archi-classiques de formatage ne sont plus possibles, comme les copies dans les entêtes de rupture (la colonne source ne peut plus être supprimée ; cependant il est encore possible de la rendre invisible par formatage, ou de jouer avec les sections).

Impossible encore de voir les données brutes depuis le rapport (le « microcube »). La fonctionnalité « Coller la mise en forme » a aussi disparu, et c’est très dommage. (Mise à jour de décembre : Elle est revenue en XI 3). Les filtres ne peuvent plus être que de la forme [Champ] (opérateur) <Valeur>, finies les formules sioux (il faut fastidieusement passer par des variables et non, le convertisseur ne le fera pas pour vous). Les graphiques sont à la fois mieux gérés et moins flexibles.

Il faudra apprendre à sauvegarder fréquemment : le bouton d’annulation ne permet plus qu’un (1) seul et unique retour en arrière (aucun en mode exploration) !!! (Mise à jour : Là aussi, c’est corrigé en XI 3). Ça tombe bien, la session du serveur expirant au bout de 20 minutes, vous pouvez perdre tout le travail en cours pendant une pause café.

Oubliez aussi les boutons d’alignement des cellules : disparus ! À côté de ça on remarque à peine la disparition des fonctionnalités de gestion fine des bordures (distinction intérieur/extérieur, pointillés...). La philosophie de cliquodrome total est également encore accentuée par rapport au client lourd (perte des raccourcis clavier de la version Windows).

Pour l’affichage et l’impression, la régression est monumentale, avec certes le PDF et le HTML comme formats d’exports privilégiés, mais on perd nombre de fonctionnalités de mise en page à l’impression qui vont de soi sous Windows (notamment le très pratique « Ajuster sur N pages en largeur et M en hauteur »).

Entre autres gags, les insertions de logo sont foireuses : soit on veut un logo de haute qualité, qu’il faut redimensionner dans un coin de la page, et cela ne marche qu’en impression PDF, mais pas en affichage HTML (logo tronqué), soit il faut se contenter d’un logo ayant la même taille en pixels que la cellule, et la qualité d’impression sera moyenne.

Je passe sur le fait que les machines de formation chez BO possédaient 2,5 Go de RAM, un processeur à 3 GHz pour faire tourner les serveurs BO et Webi (certes dans un VMWare). Ma machine au bureau, bien moins costaude, tire juste un peu la langue. Mais en tant que client simple, un XP sur une machine récente avec 512 Mo de RAM est suffisant. Certains rapports très lourds génèrent cependant lamentablement des messages d’erreurs incompréhensibles au bout de quelques temps, un des innombrables délais d’expiration doit être silencieusement violé : Webi est moins stable que le client lourd.

Si le développement de nouveaux rapports se fait sans trop d’anicroches, la migration des anciens peut être très fastidieuse à cause de tous les problèmes ci-dessus, des règles plus strictes qui font voler en éclat nombre d’astuces, et d’un convertisseur qui, une fois de plus, préfère inventer un message d’erreur stupide que dire la vérité. Si en plus l’utilisateur le lecteur final tient à sa mise en forme identique au micropoil près...

Bref, Webi est BO tel qu’il aurait dû être dès le départ, mais avec de scandaleuses régressions d’ergonomie par rapport au client lourd, parfois incompréhensibles. On se croit parfois revenu en 1990. On verra ce que donnera la version R3 promise pour très très bientôt.

D’un autre côté, Webi tourne sous Linux (j’ai sommairement testé sous Ubuntu), ça fait toujours un lien de moins avec Microsoft.

Dans le futur

Si je laisse parler mon côté mauvaise langue, je pourrais dire que l’alliance avec SAP est une garantie que l’ergonomie, la complexité et la lourdeur ne vont PAS s’améliorer. Pour l’ergonomie, on verra comment évolue Webi, mais le produit existe depuis longtemps et ne rattrape que lentement son retard…

Mise à jour de décembre 2008 : Il faut reconnaître que XI 3 est un énorme progrès — il corrige nombre de lacunes fonctionnelles béantes et de manques ergonomiques. XIR2 sentait le « pas fini » à plein nez, XI3 est plus léché et beaucoup plus agréable.

Mise à jour de mai 2011 : XI3 est mieux, mais au final toujours farci de bugs.

(Suite dans : L’abominable BO (suite) : de R2 à 3.0 et de BO à SAP et une pincée de schizophrénie web)