Un ERP est un monstre. C’est un logiciel coûteux, voire ruineux, souvent très lourd à mettre en place, qui impose sa logique à toute une entreprise, mais qui lui permet d’intégrer tout son fonctionnement de A à Z : commandes clients, livraison, production, facturation, plans de prod, achats, ressources humaines, calcul de coûts, marges, rapports fiscaux et comptables, qualité...
Des armées de consultant consacrent leur vie à la mise en place et la maintenance des ERP - et ils ont fait la fortune de bien des SSII. [1] sap-buchung.jpg

Le CRM est un autre terme fourre-tout pour un logiciel censé gérer toute la « relation client »[2], de la commande au service après-vente. C’est effectivement un monde très vaste et le terme veut dire un peu tout et rien. C’est souvent un des modules d’un ERP. Comme lui, il a besoin de doses massives de paramétrage pour s’adapter aux besoins de l’utilisateur.

Ça fait quelques années que je me casse le crâne sur les commandes et livraisons dans des ERP, que ce soit Oracle Applications ou plus récemment SAP.

Techniquement, les entrailles de ces monstres sont assez glauques. On sent l’historique chargé[3]. Par exemple, la table des articles dans SAP se nomme MARA, celle des commandes VBAK, celle des livraisons LIKP, celle des pays T005.
La première impression d’horreur est totalement justifiée : ces codes datent bien de la préhistoire de l’informatique, de l’ère où les noms de fichiers (ne parlons pas alors de « tables ») se limitaient à 4 caractères[4]. Il y a tout de même quelques trucs mnémotechniques : le « K » dans VBAK et le « KP » dans LIKP veulent dire « en-tête »... en allemand (kopf). Oui, SAP est allemand[5].

Dans la même logique, on verra vite que les tables de lignes de commandes et de livraisons correspondant à ces en-têtes s’appellent VBAP et LIPS. P et PS pour « poste » (Position outre-Rhin), évidemment ; ce serait trop simple de parler de « lignes » de commandes. Si vous ignoriez le terme dans ce contexte, je vous l’apprends, et je l’ignorais moi-même il y a deux mois.

oracle_appli.jpg Le concurrent, Oracle Applications, est un peu plus bavard quant aux noms de tables : OE_ORDER_LINES et OE_ORDER_HEADERS, WSH_DELIVERIES, WSH_DELIVERY_DETAILS sont beaucoup plus explicites. Et il y a plus de chances que vous parliez anglais qu’allemand. (Par contre, l’interface utilisateur est tellement moche qu’un commercial m’a dit éviter de la présenter en avant-vente[6].).

À suivre...

Notes

[1] D’ailleurs, la difficulté de modification, de paramétrage et de maintenance des ERP sont une des raisons pour lesquelles les SSII adorent les vendre : ils s’assurent ainsi une éternelle réserve de facturation toutes les années où l’ERP tournera. Les clients ne résistent souvent pas à la tentation de vouloir adapter l’outil à leurs habitudes, même si on calcule que le plus ridicule rapport ou écran coûtera plusieurs milliers d’euros.

[2] S’il n’y a pas de préposition, c’est de l’anglais traduit par quelqu’un qui voulait impressionner son monde.

[3] Le cœur de chacun de ces produits est en général très ancien, parfois trois décennies ; même s’il a été reprogrammé depuis, les anciennes modes et contraintes de programmation et d’interface y ont imprimé leur marque pour toujours. De plus, un module est souvent un logiciel tiers acheté, plus ou moins bien intégré au reste de l’ERP. Enfin, des modules récents cohabitent avec des modules antédiluviens car anciens et stables (souvent la comptabilité), ce qui occasionne de belles incohérences de logiques d’interface ou de programmation.

[4] De manière plus récente, certaines normes de nommage de documents sont encore influencées par celles de DOS et Windows 3.1 (8 caractères maxi), dix ans après leur disparition..

[5] Et le code source des programmes est bourré de commentaires dans la langue de Goethe. Je suis très heureux de la parler.

[6] Qu’une interface soit moche est trompeur. Celle d’Oracle est plus consistante bien que plus limitée que SAP. Mais je crois que je les hais toutes les deux.