Introduction – Pourquoi le debugging est une compétence clé en SAP
En projet SAP, le debugging n’est pas un exercice scolaire. C’est un outil de résolution rapide, de sécurisation des corrections et de compréhension réelle du standard SAP. En entretien technique, la capacité à diagnostiquer un bug vaut souvent plus qu’un discours théorique.
L’objectif est simple : isoler le point d’entrée, comprendre la valeur qui déclenche l’erreur, et confirmer la solution avec des preuves reproductibles.
Mental model de debug Symptôme |-> Point d’entrée |-> Données d’entrée |-> Branche de code |-> Cause racine v Correction testée
Les types de debugger SAP
SAP propose le debugger classique et le New Debugger. Le second est la référence en S/4HANA : vues variables plus riches, navigation dans les classes et activation plus stable des breakpoints.
Les breakpoints (tous les types)
Les breakpoints sont la base. En projet, les bons réflexes sont : choisir le type adapté et le bon utilisateur pour l’exécution.
- Transactions utiles : /h pour activer le debug, /n pour relancer.
- Utiliser les breakpoints conditionnels pour filtrer une clé précise.
Watchpoints et analyse des variables
Les watchpoints déclenchent le debug lorsqu’une variable change de valeur. Très utile pour traquer un écrasement ou un mapping erroné.
"Exemple de watchpoint lv_status = 'ERR'. * Mettre un watchpoint sur lv_status * Condition: lv_status = 'ERR'
- Mettre le watchpoint sur un champ clé (statut, clé technique).
- Vérifier qui écrit la valeur et à quel moment.
Exécution pas à pas (commandes essentielles)
En entretien, on attend une explication claire du choix F5/F6 selon la complexité de la méthode.
Debug des programmes ABAP classiques
Sur un report ou une transaction classique, le plus efficace est de placer un breakpoint au point d’entrée logique (START-OF-SELECTION, PAI, module de fonction clé).
- Limiter les données de test pour réduire la complexité.
- Vérifier les paramètres d’entrée et le sélection screen.
- Isoler les modules fonctionnels critiques via SE37.
Debug des jobs batch
Les jobs batch sont un cas récurrent en projet. On utilise SM37 pour retrouver le job, puis SM50 pour attacher le debugger au work process.
Pas-à-pas batch SM37 -> sélection du job |-> Job actif |-> SM50 : sélection du WP |-> Debugger attaché
- Prévoir un variant de job réduit pour le debug.
- Vérifier les autorisations du user batch.
Debug des RFC
Les RFC passent souvent par un user technique. Le debug externe est indispensable pour capturer l’appel réel.
- Configurer le breakpoint externe sur l’utilisateur RFC.
- Tester la destination dans SM59 avant de debugger.
- Analyser les inputs dans SE37.
Debug des IDocs
L’IDoc est un flux critique. Le debug se fait souvent au niveau du module de fonction d’inbound ou d’outbound.
Debug SAP Fiori / OData
Sur Fiori, le debug passe par le service OData. Le breakpoint externe doit viser l’utilisateur front. Le point d’entrée est souvent dans la classe DPC_EXT.
- Vérifier l’appel via /IWFND/MAINT_SERVICE.
- Debug dans la méthode GET_ENTITYSET ou CREATE_ENTITY.
- Valider les logs Gateway si besoin.
Debug des exits, BAdI et enhancements
L’objectif est d’identifier l’enhancement actif. Le debugger permet de voir la chaîne d’appel et d’isoler l’implémentation.
- Utiliser les points d’arrêt dans les classes BAdI actives.
- Exploiter les outils d’enhancement dans SE80.
Debug erreurs spécifiques (DEV vs INT/PRD)
Un bug qui n’existe pas en DEV provient souvent de données, autorisations, customizing ou versions de code différentes.
- Comparer les versions transportées.
- Vérifier les autorisations user.
- Comparer la donnée réelle via SE16N.
Cas réels fréquents en projet
Breakpoints sur BAdI ME_PROCESS_PO_CUST.
Cause : mapping champ non initialisé.
WE02 + BD87 avec debug.
Cause : segment obligatoire absent.
Breakpoint externe DPC_EXT.
Cause : conversion type erronée.
Bonnes pratiques de debugging SAP
- Travailler avec un jeu de données minimal.
- Documenter le point d’entrée et la cause racine.
- Supprimer les breakpoints statiques avant livraison.
- Ne pas déboguer en PROD sans accord formel.
Conclusion – Messages clés pour consultants SAP
- Un bon debug commence par le bon point d’entrée.
- Les breakpoints externes sont essentiels pour RFC/Fiori.
- Les transactions WE* et SM* sont vos alliés au quotidien.