Enhancement Framework Overview
Which technique for which scenario.
Explanation
Classic user exits (INCLUDE ZXxxxx) still exist in modules like SD. Customer exits (SMOD) are function-module enhancements activated via CMOD projects. BAdIs are the OO successor. Enhancement spots (implicit/explicit) let you insert code inside standard programs. On S/4HANA new development should use new BAdIs and released enhancement options, avoiding modifications to keep Clean Core.
Code example
" Implicit enhancement point inside a standard includeENHANCEMENT 1 zenh_check_credit. IF is_customer-credit_limit < 0. MESSAGE 'Blocked' TYPE 'E'. ENDIF.ENDENHANCEMENT.Real project scenario
A retail client added a credit check via implicit enhancement rather than modifying VA01 โ survived three upgrades untouched.
Common mistakes
Choosing modifications over enhancements; not naming enhancements per namespace; forgetting to transport the enhancement implementation together with the spot.
Best practices
Always try BAdI first, then enhancement point, then modification as last resort with SSCR key.
Interview angle
Difference between classic BAdI and new BAdI.