Short Dump Blog - Aktualisiert 17.5.2026 - 12 Min. Lesezeit
BAdI vs user exit: extension governance for SAP teams
How to choose, document and review SAP enhancement points without creating hidden upgrade risk.
Author: Rastislav Janak / s4hanahub team
Problem definition
Enhancement catalogs become dangerous when they list names but not intent. The missing field is rarely the BAdI name; it is the business rule that the code quietly enforces.
The uncomfortable question
If the original developer is on holiday and the document is blocked, can the team explain what the enhancement does without reading the ABAP like ancient poetry?
Every enhancement is a small constitution. It says what the standard process may not do alone and which local rule gets to interrupt it.
Governance means documenting trigger, data, owner, side effect and test evidence. That sounds administrative until an upgrade turns yesterday's clever shortcut into tomorrow's production incident.
Here is the project version: A BAdI or user exit can solve a real business problem, but it can also become a hidden rule that nobody remembers during upgrade, audit or incident analysis. The technical question "where can I put code? " is therefore the wrong starting point. That sounds simple, which is how SAP topics lure us into underestimating them.
The better question is "which business rule must be controlled, tested and owned? "
The SAP evidence trail is less romantic: BAdIs are usually more explicit extension points with defined interfaces and implementation concepts. User exits are often older enhancement options and can be tightly connected to a specific program flow. In both cases, the call timing is critical. In a clean demo this takes minutes; in production it asks for ownership, variants and a little courage.
Code that runs before update, after validation or during output processing can see a different document state and can create very different side effects.
This is where the support ticket usually starts: A responsible enhancement review captures six facts: enhancement name, business purpose, triggering condition, available input data, changed output data and fallback behavior. The screen is only the stage. The process is the plot.
If the implementation blocks a document, changes a partner, enriches a customs field or modifies an account assignment, the owner must be clear. A future team should not have to reverse-engineer the business decision from ABAP code.
The control angle is the part worth underlining: For S/4HANA projects, extension governance should also check whether a released API, CDS extension, key-user adaptation, workflow rule or side-by-side service would be safer. A consultant should be able to explain this without opening a thirty-slide apology deck.
For GTS, it is especially important to document compliance and customs logic because the consequence of a hidden rule may be operational delay, incorrect declaration data or inconsistent screening behavior.
For training, the useful lesson is this: The best enhancement catalog is not only a search list. It is a controlled inventory with process area, call location, implementation count, owner and test evidence. That is the difference between technical navigation and knowledge people can reuse.
That makes it useful for support and valuable for monetizable expert content because it explains how to think about SAP extensions, not only how to find their names.
Good custom logic should be searchable, explainable and slightly boring. The exciting enhancements are the ones support teams remember for the wrong reasons.