How to modify and extend SAP applications – Different approaches + Transaction codes

This part of series is focused on transactions that allow an ABAP developer enhance the original SAP reports with his own modifications. You will find here the list of transactions – possibilities how to extend SAP reports, internal logic within function modules, classes or dictionary objects.

This post is part of series about SAP transaction codes for ABAP Developers:

  1. Basic SAP transactions for ABAP developers
  2. How to modify and extend SAP applications
  3. Transaction codes for database and table handling
  4. How to analyse, debug and optimize your SAP programs with standard tools


There are following options how to modify SAP’s standard code. Recommended approaches are BADI implementations and enhancement points.

  • BADI implementations – SE18, SE19
  • Enhancement points – implicit or explicit enhancements points – SE80
  • User exits – CMOD, SMOD
  • Modifications – SE95, SPAU, SPDD


1. Business Add Ins (BADI)

SE18 – BADI Builder – Definitions

BADI stands for Business Add Ins which is an advanced way of implementing modifications. Developer can use BADI builder definition for creating or searching for possible places where he or his customers can modify ABAP logic using BADI or enhancement spots.


SE19 – BADI Builder – Implementations

When the developer knows which BADI or enhancement spot he wants to modify, he can manage BADI implementations and enhancement spots in se19.



2. Enhancements

SMOD – SAP Enhancements

SAP Enhancements transactions is a former type of SAP’s way to modify programs using user exits. Anyway, it can still be handful for developer to know this transaction, since he may come across old solutions which used this technique. SMOD includes more type of user exits – menu, screen and function module exits.


CMOD – Project Management of SAP Enhancements

CMOD transaction is used for managing attributes, enhancement assignments, components and documentation of SAP Enhancement. Developer manages here Enhancement projects which are formed by Enhancements from SMOD.



3. Enhancement points

SE80 – ABAP Development Workbench

SE80 transaction was already mentioned in the first article about essential transaction codes for ABAP development. The reason why it is included here is the fact, that the developer can manage enhancement points through this transaction. When the developer clicks on a highlighted icon, enhancement implementation tools will be available for him. He can choose either from explicit or implicit enhancement points in the source code where he can insert his own code or modify already implemented enhancement points.



4. Modifications

SE95 – Modification Browser

When there is no other option, the developer can also create modifications in the source code using transaction se80. First he needs to obtain repair registration key from SAP OSS, then the modification will be possible. Be aware that this is the most painful way because the developer will have to take care about merging the changes after every service pack upgrade or note implementation using transactions SPAU and SPDD. Modification browser is the used by developer to manage all recent modifications in the system.


SPAU – Modification Adjustment

After every upgrade, modifications has to be rechecked. When there is a change in the standard code in the same place where is the modification, developer needs to adjust this modification.


SPDD – Modification Adjustment for Dictionary

The same approach must be used for dictionary objects. Whenever the dictionary object is changed, developer have to repeat the modification.



I hope you enjoyed this article, if you have any comments let me know in the discussion.

Peter Marcely

ABAP, Python, JavaScript developer