Le véritable défi d’un expert ETL n’est pas seulement de livrer des données rapidement, mais c’est aussi de bâtir des flux ETL robustes et maintenables, c’est-à-dire des traitements capables de s’auto-diagnostiquer, faciles à faire évoluer et documentés par design. Sur SAP BODS (SAP Data Services), appliquer quelques bonnes pratiques fait toute la différence entre un flux qui tient cinq ans et un flux qu’on redéveloppe à chaque départ de consultant. Dans ce guide, nous explorons 7 règles d’or pour passer du « bricolage » à une architecture de données industrielle et pérenne.
Règle n°1 : Le Template de Job Standard — Ne plus jamais partir de zéro
L’anarchie commence quand chaque développeur crée sa propre structure.
- Le concept : créez un Job « modèle » qui contient déjà les objets de base : un script d’initialisation (pour charger les variables globales), un bloc Try/Catch global, et un script de fin (pour logger le succès ou l’échec).
- L’avantage : tous vos jobs se ressemblent, ce qui facilite énormément la compréhension par un nouveau consultant.
Règle n°2 : Naming Convention BODS — la clarté au premier regard
Rien n’est pire qu’un Dataflow nommé DataFlow_1 contenant des Query, Query_1, Query_2.
- La règle : adoptez un préfixe par type d’objet (ex : DF_ pour Dataflow, WF_ pour Workflow, QRY_ pour un Query Transform, LKP_ pour un Lookup).
- L’astuce : nommez vos objets selon leur action. Au lieu de QRY_Calcul, utilisez QRY_Calcul_TVA_Ventes. La maintenance devient visuelle.
💡 SAP Data Services : pourquoi choisir DeciVision ?
Découvrez notre expertise et notre retour d’expérience sur l’outil pour fiabiliser vos flux ETL dans la durée.
Découvrir notre expertise SAP Data Services →Règle n°3 : La Gestion d'Erreurs Try/Catch — anticiper l'inévitable.
Un job qui « tombe » sans prévenir est une bombe à retardement.
- Le Try/Catch : encapsulez vos Workflows critiques. Dans le bloc Catch, utilisez une fonction pour récupérer l’erreur via error_message() et error_context().
- L’alerte : automatisez l’envoi d’un mail ou l’insertion d’une ligne dans une table de bord (Monitoring) pour que l’équipe d’exploitation soit prévenue avant même que l’utilisateur ne s’en aperçoive.
Règle n°4 : Le Paramétrage ETL par Table — zéro « hard-coding »
Évitez d’écrire des chemins de fichiers comme C:\Interfaces\Input ou des dates fixes directement dans vos filtres.
- La méthode : créez une table de configuration (ou un fichier .ini) qui stocke ces valeurs. Au démarrage du Job, le script d’initialisation lit ces valeurs et les affecte à des variables globales ($G_Path_Input).
- L’avantage : pour changer de serveur ou de répertoire, vous modifiez une ligne en base de données, pas le code BODS (pas de transport nécessaire).
Règle n°5 : L'Audit de Flux BODS — compter pour ne rien perdre
Comment savoir si 10 lignes n’ont pas disparu lors d’une jointure complexe ?
- L’outil : utilisez l’onglet Audit sur le Dataflow. Vous pouvez définir des règles simples : « le nombre de lignes en sortie doit être égal au nombre de lignes en entrée ».
- L’action : si la règle n’est pas respectée, vous pouvez configurer BODS pour qu’il arrête le job ou qu’il génère un warning. C’est le meilleur moyen de garantir l’intégrité des données — une logique proche de ce qu’on retrouve sur des outils de data quality comme Talend Data Quality.
Règle n°6 : La Documentation Technique ETL — le « Pourquoi » plutôt que le « Comment »
Dans six mois, vous aurez oublié pourquoi vous avez mis ce filtre WHERE Type_Client <> ‘Z’.
- L’annotation : utilisez l’outil de note (l’icône de bulle) directement sur le canevas du Dataflow pour expliquer les règles métier complexes.
- Descriptions d’objets : remplissez systématiquement le champ « Description » dans les propriétés de chaque Workflow/Dataflow. C’est cette description qui apparaîtra dans les rapports de documentation automatique.
Règle n°7 : Nettoyage Projet BODS et Repository Central — éviter l'encombrement
Un projet surchargé d’objets « Test », « Old » ou « V2 » ralentit l’ouverture du Designer et induit en erreur.
- La discipline : avant chaque livraison en recette ou production, faites un ménage strict. Utilisez la fonction « Find Usage » pour vérifier qu’un objet n’est plus lié à rien avant de le supprimer.
- Référentiel central : pour le travail en équipe, utilisez systématiquement le Central Repository avec le check-in/check-out pour éviter d’écraser le travail des autres.
Questions fréquentes sur SAP BODS
Qu'est-ce que SAP BODS (SAP Data Services) ?
SAP BODS — acronyme de SAP Business Objects Data Services — est l'outil ETL (Extract, Transform, Load) de SAP. Il permet d'extraire des données depuis des sources hétérogènes (SAP, bases SQL, fichiers plats), de les transformer selon des règles métier, puis de les charger vers un entrepôt de données ou un système cible. C'est l'un des outils ETL les plus répandus dans les environnements SAP BusinessObjects. DeciVision, partenaire Gold SAP, l'intègre et le maintient depuis sa création en 2006.
Quelle est la bonne pratique la plus impactante sur SAP BODS ?
Le template de job standardisé (règle n°1) est de loin celle qui a le plus d'impact sur la maintenabilité à long terme. En imposant une structure commune à tous les flux dès le départ — bloc d'initialisation, Try/Catch global, script de fin — on réduit de façon significative le temps de débogage et on facilite la montée en compétences des nouveaux consultants. Les projets qui zappent cette étape en début de mission la regrettent systématiquement lors des premières mises en production.
SAP BODS est-il encore utilisé en 2025–2026 ?
Oui. SAP Data Services reste le socle ETL de nombreuses organisations qui ont bâti leur patrimoine de flux sur plusieurs années. SAP le maintient activement et le positionne dans sa suite Data Services au côté de SAP Datasphere pour les architectures cloud. Les parcs installés sont très larges — la question n'est généralement pas "faut-il migrer" mais "quand et vers quoi". Nos consultants interviennent régulièrement sur des environnements BODS en production, souvent sur des flux critiques qui tournent depuis 8 à 12 ans.
Comment éviter le "hard-coding" dans SAP BODS ?
En centralisant tous les paramètres variables (chemins de fichiers, dates, seuils, noms de serveurs) dans une table de configuration ou un fichier .ini chargé en début de job. Le script d'initialisation lit ces valeurs et les affecte à des variables globales (ex : $G_Path_Input). Changer d'environnement ou de serveur devient alors une modification dans une table, pas dans le code BODS — ce qui évite un transport de correction en production pour un simple changement de répertoire.
Conclusion de l’expert
La robustesse d’un projet SAP BODS ne repose pas sur une fonctionnalité miracle, mais sur une discipline de fer. En adoptant des templates standardisés, une nomenclature rigoureuse et une gestion d’erreurs proactive, vous ne vous contentez pas de déplacer des données : vous construisez des flux ETL robustes et maintenables, un actif fiable pour votre entreprise.
Appliquer ces sept règles demande un investissement initial, mais le gain est inéluctable :
- Moins de stress lors des mises en production.
- Un temps de débogage fortement réduit.
- Une passation technique fluide entre les équipes.
TMA BI : faire ou faire faire ?
Découvrez notre offre de Tierce Maintenance Applicative pour sécuriser vos flux ETL dans la durée, sans mobiliser vos équipes internes.
Découvrir notre offre TMA →

