SAP migrated BADI using enhancement point implementation

Many classic BADI's have now been migrated to the new enhancement framework and are now implemented via an enhancement spot, this includes standard BADI's and Multiple use BADI's.

Implementing a BADI via an enhancement spot

To be honest implementing a migrated BADI is still much the same as implementing a classic BADI so check out this article first for full step by step details...

You basically execute Business Add-In(BADI) transaction SE18, choose the BAdI option, enter a migrated BADI name ( i.e. BADI_MM_MATNR ) and press display. Also if you want to know which badi is executed within a particular transaction see here for how to find a BADI


It is simple to see if a BADI has been migrated as it is displayed within the type properties. For example within the properties of the BADI_MM_MATNR BADI it shows that it has been migrated to an enhancement spot with the same name BADI_MM_MATNR. Therefor implementing this BADI actually uses the enhancement framework and implements via an Explicit enhancement spot. Note this BADI is also a multiple use badi but this does not effect how it is implemented just means you can have more than one BADI implementation active.


This only changes a number of the steps slightly from a that of a classic BADI. See below for steps required to implement this enhancement spot based SAP BADI.

1. The first step is much the same you select menu option Implementation->Create


and give the implementation a name such as Z_BADI_MM_MATNR


2.On the next screen enter some implementation short text and press save


3.You will now recieve an information message saying "Implementation Z_BADI_MM_MATNR will be migrated". This is just informing you that the classic BADI has been migrated to an enhancement spot. Therefore all existing implementations must now be migrated, and any new ones must be created within the enhancement framework.


4.Simply press OK, then on the next screen you will need to create a new enhancement implementation or select an existing one. For this example I will create a new one so press the create button


Give the enhancement implementation a name and description. Then press the ok tick and assign your implementation to a transport or create as a local object.


Your new implementation should now be available, select it and press the ok green tick icon


5. From this point on it is much the same as implementing a classic BADI i.e. you can go to the Interface tab and select a method you want to enhance by double clicking on it.


Now enter your desired ABAP code


6. Once your done Save and activate the method and then the BADI implementation


7. As this is a multi use BADI you can now create a second, third, four etc implementation and activate them without any problem. But remember they will not be executed in any particular sequence and could be a different sequence each time. You can also create each implementation within the same enhancement implementation you just created.


BADI related articles
  Find which BADI's are triggered within a SAP transaction
  Classic BADI enhancement
  Multiple Use BADI's
  Classic BADI with filter
  Migrated BADI to enhancement
  All SAP Enhancement


Related Articles

ABAP Enhancements - Modify SAP standard code using the SAP enhancement transaction CMOD
SAP BADI enhancement implementation (Business Add-In)
Changing SAP Data Element documentation (F1 help text)
Changing SAP Data Element field text
Find SAP BADI triggered from a SAP transaction, also find tcode from BADI name
Access values outside the SAP customer exit
SAP User Exits to Add functionality to the PBO and PAI of SAP HR infotypes
Adding fields to SAP standard Infotype
SAP User exist enhancements
SAP Field Exits implementation to update global dictionary field details
SAP filter BADI allows multiple implementations to be active
Modifying Standard SAP System and help Menu options
Modifying Standard SAP System and help Menu options
SAP mutiple use BADI and enhancement spot implementation (Business Add-In)
SAP User exits to allow developers to enhance standard SAP functionality without modifiy SAP code