All topics
ABAPIntermediate

Enhancements

Master SAP enhancement techniques including implicit/explicit enhancements, enhancement spots, user exits, customer exits, BAdIs and clean-core extension thinking.

Overview

Master SAP enhancement techniques including implicit/explicit enhancements, enhancement spots, user exits, customer exits, BAdIs and clean-core extension thinking.

Lessons in this topic

  • Enhancements Part 1: SAP Enhancement Techniques OverviewUnderstand how SAP standard behaviour is extended without modifying it: user exits, customer exits (SMOD/CMOD), Business Transaction Events, classic and new BAdIs, enhancement points — and why modifications are the last resort.
  • Enhancements Part 2: The Enhancement Framework OverviewLearn the building blocks of the Enhancement Framework: enhancement spots and composite spots, enhancement options (BAdIs, explicit points and sections, implicit points), enhancement implementations, the tools SE18/SE19/SE20/SE80 and how implementations are activated and transported.
  • Enhancements Part 3: Implicit vs Explicit Enhancement PointsCompare explicit enhancement points and sections (placed by SAP in the code) with implicit enhancement options (available at standard positions everywhere): where each exists, how to display them, stability across upgrades and when to use which.
  • Enhancements Part 4: Finding Enhancements Using DebuggingFind the right enhancement for a requirement: breakpoints at CALL CUSTOMER-FUNCTION, GET BADI / CALL BADI and CL_EXITHANDLER=>GET_INSTANCE, searching the program for ENHANCEMENT-POINT, SMOD by package, SE84, SPRO notes and the where-used list — then verifying the data available at that point.
  • Enhancements Part 5: Implementing Explicit Enhancement Points and SectionsImplement an explicit enhancement point step by step: switch to Enhance mode, create an enhancement implementation, write the plug-in, activate and transport; plus STATIC points for declarations, enhancement sections, and handling several implementations.
  • Enhancements Part 6: Enhancement Spots and ImplementationsWork with enhancement spots and implementations as objects: SE20 navigation, simple vs composite spots and implementations, creating your own enhancement spot with a BAdI or explicit point for customer code, activation, SPAU_ENH after upgrades and naming/ownership rules.
  • Enhancements Part 7: Implicit Enhancements — Power and RiskUse implicit enhancements responsibly: where they are available, how to implement them in FORMs, function modules and class methods (pre/post/overwrite), what data is accessible, the upgrade and support risks, and a checklist for approving them.
  • Enhancements Part 8: Switch-Controlled Enhancements (Switch Framework)Understand how the Switch Framework controls enhancements: business functions, switches and packages (SFW1/SFW2/SFW5), why industry solutions and enterprise extensions are switched, what happens when you activate a business function, and how to use switches for your own enhancements.
  • Enhancements Part 9: Performance and Safety in EnhancementsWrite enhancement code that never harms the standard process: no COMMIT/ROLLBACK, no dialogs in background, correct messages, buffered reads instead of SELECTs per item, guard conditions, exception handling, and how to test and monitor enhancements (ST05, SAT, ST22).
  • Enhancements Part 10: Enhancements in S/4HANA and Clean CoreMap classic enhancement techniques to S/4HANA clean core: key user extensibility (custom fields and logic), developer extensibility with released BAdIs and APIs, side-by-side extensions, what happens to user exits and implicit enhancements, and how to classify and reduce existing enhancements.

Interview questions covered

  • A CMOD enhancement produces different results in TEST environment versus PRODUCTION. Both use same code version. What could cause this issue? Describe your complete diagnostic approach.
  • You are migrating from legacy ECC 6.0 with 30 CMOD enhancements to SAP S/4HANA. Develop a comprehensive strategy for assessing, planning, and executing the migration. What are the key technical challenges?
  • What are field exits, and why should they generally be treated as legacy knowledge rather than a preferred enhancement technique?
  • Your organization has 15 CMOD enhancement projects in production for various modules. Document a maintenance and monitoring strategy including: best practices for documentation, version control, and troubleshooting enhancements.
  • Differentiate a user exit from a customer exit. How would you choose the correct enhancement for a sales-order save requirement?
  • Your CMOD project created yesterday is not being invoked. What are the most common reasons, and how would you systematically troubleshoot this issue?
  • A colleague implemented a CMOD exit that directly modifies the VBAK table inside USEREXIT_SAVE_DOCUMENT. Explain why this is dangerous and describe the correct approach.
  • Describe the process for finding all available user exits and customer exits for a specific transaction like sales order creation (VA01). What tools and SMOD exploration techniques would you use?
  • Explain the difference between classical customer enhancements and the modern Enhancement Framework. Why might SMOD/CMOD still be used in an ECC system?
  • You have implemented 5 customer exits in production for order processing. Now a major upgrade is scheduled. How does the upgrade affect your CMOD enhancements? What precautions should you take?
  • What is the role of includes such as MV45AFZZ and RV60AFZZ, and how do they differ from CMOD customer exits?
  • What is your position on using Classical Enhancements (SMOD/CMOD) in modern ERP projects? Should organizations continue investing in CMOD knowledge? Provide a balanced perspective with specific recommendations.
  • How do you debug a CMOD enhancement that is not executing as expected? Provide a systematic debugging approach with specific tools and transaction codes.
  • Compare Classical Enhancements (SMOD/CMOD) with BADIs. When would you recommend SMOD/CMOD over BADIs in a new SAP S/4HANA project? Justify your answer.
  • Explain how to properly transport CMOD enhancements across SAP systems (DEV → QA → PROD). What are common transport issues and how do you prevent them?
  • You need to enhance a sales order process to validate custom business rules before saving. Which exit point would you use: USEREXIT_SAVE_DOCUMENT or USEREXIT_MOVE_FIELD_TO_VBAP? Justify your choice.
  • Your CMOD enhancement includes complex database queries and BAPI calls. You're experiencing performance issues. How would you debug and optimize the exit performance? What are anti-patterns to avoid?
  • What are screen exits and menu exits in classical customer enhancements? Give one valid use case for each.
  • Design a safe enhancement architecture for billing-document validation, derivation, logging and post-processing without assuming undocumented exit names.
  • Explain how a function-module exit works. How do you verify the exact purpose of an EXIT_* function module before implementing it?

Related topics

Interview questions on this topic