Introduction – Why debugging is a key SAP skill
In SAP projects, debugging is not a classroom exercise. It is a rapid resolution tool, a way to secure fixes, and a practical way to understand SAP standard behavior. In technical interviews, the ability to diagnose a bug often matters more than theory.
The goal is simple: isolate the entry point, understand the value that triggers the error, and confirm the solution with reproducible proof.
Debug mental model Symptom |-> Entry point |-> Input data |-> Code branch |-> Root cause v Fix validated
SAP debugger types
SAP offers the classic debugger and the New Debugger. The latter is the standard in S/4HANA: richer variable views, class navigation, and more stable breakpoint handling.
Breakpoints (all types)
Breakpoints are the foundation. On projects, the right reflex is to pick the correct type and execution user.
- Useful transactions: /h to activate debug, /n to restart.
- Use conditional breakpoints to filter a specific key.
Watchpoints and variable analysis
Watchpoints trigger debug when a variable changes value. Very useful to track overwrites or incorrect mappings.
"Example watchpoint lv_status = 'ERR'. * Set a watchpoint on lv_status * Condition: lv_status = 'ERR'
- Set watchpoints on key fields (status, technical key).
- Verify who writes the value and when.
Step-by-step execution (essential commands)
In interviews, you are expected to clearly explain F5 vs F6 choices depending on method complexity.
Debugging classic ABAP programs
For a classic report or transaction, the most effective approach is to place a breakpoint at the logical entry point (START-OF-SELECTION, PAI, key function module).
- Limit test data to reduce complexity.
- Check selection screen parameters and inputs.
- Isolate critical function modules via SE37.
Debugging batch jobs
Batch jobs are common on projects. Use SM37 to find the job, then SM50 to attach the debugger to the work process.
Batch step-by-step SM37 -> select job |-> job active |-> SM50: select WP |-> debugger attached
- Prepare a reduced job variant for debug.
- Check batch user authorizations.
Debugging RFC
RFCs often run under a technical user. External debugging is essential to catch the real call.
- Set the external breakpoint on the RFC user.
- Test the destination in SM59 before debugging.
- Analyze inputs in SE37.
Debugging IDocs
IDocs are critical flows. Debugging often happens in the inbound or outbound function module.
Debugging SAP Fiori / OData
In Fiori, debugging goes through the OData service. The external breakpoint must target the front-end user. The entry point is often in the DPC_EXT class.
- Verify the call via /IWFND/MAINT_SERVICE.
- Debug in GET_ENTITYSET or CREATE_ENTITY.
- Check Gateway logs if needed.
Debugging exits, BAdIs, and enhancements
The goal is to identify the active enhancement. The debugger shows the call chain and the exact implementation.
- Use breakpoints in active BAdI classes.
- Leverage enhancement tools in SE80.
Environment-specific debugging (DEV vs INT/PRD)
A bug that does not appear in DEV often comes from data, authorizations, customizing, or different code versions.
- Compare transported versions.
- Check user authorizations.
- Compare real data in SE16N.
Common real cases
Breakpoints on BAdI ME_PROCESS_PO_CUST.
Cause: uninitialized field mapping.
WE02 + BD87 with debug.
Cause: missing mandatory segment.
External breakpoint on DPC_EXT.
Cause: wrong type conversion.
SAP debugging best practices
- Work with a minimal data set.
- Document entry point and root cause.
- Remove static breakpoints before delivery.
- Do not debug in PROD without formal approval.
Conclusion – Key messages for SAP consultants
- A good debug starts with the right entry point.
- External breakpoints are essential for RFC/Fiori.
- WE* and SM* transactions are daily allies.