The new enhancement framework contains enhancement points and enhancement sections as newly added options. It includes both implicit and explicit enhancement points and explicit enhancement section. The new enhancement framework also contains new BAdI and classic BAdI. As shown here, explicit enhancement point, explicit enhancement section and the new BAdIs are managed using enhancement spots. A collection of enhancement spots can be called a composite enhancement spot.
An enhancement point provides the users with an option to insert their own source code, variable declarations, and parameter declarations in SAP programs, function modules and classes without the need for a modification. Implicit enhancement points are present at particular points in SAP objects by default, whereas explicit enhancement points are insertion options that are generated by SAP.
IMPLICIT ENHANCEMENT POINTS (1)
The slide lists the options where implicit enhancement points are present.
IMPLICIT ENHANCEMENT POINT (2)
As shown here, implicit enhancement points are also present in various points in classes.
EXPLISIT ENHANCEMENT POINTS AND ENHANCEMENT SECTIONS
An explicit enhancement point is an option provided in advance to SAP users to enhance the SAP source code without making any modification.
Similarly, an explicit enhancement section is another such option which allows the users to replace the SAP source code without making any modification.
REASONS TO THE NEW BADIs TECHNOLOGY
There are several reasons for introducing the new BAdI technology :It improves performance.
Helps in implementing additional concepts such as enhanced filter concept and an option to inherit attributes from sample implementation classes.
Integration into the new Enhancement Framework.
Integration into Switch Framework.
CLASSIC BADIs (ARCHITECTURE)
You can execute a BAdI through a BAdI interface and a BAdI adapter class. You must create an instance of the adapter class in the application program. This instance calls the required BAdI implementations.
CLASSIC BADIs (CALL SYNTAX IN PROGRAM SAP)
In SAP program, you can create an instance of the adapter class by passing the variable name to the get_instance method of the service class CL_EXITHANDLER. Additionally, you can call the required method implementations by using the instance, r_exit.
NEW BADIs (ARCHITECTURE)
In the new BAdI technology, BAdI is defined within an enhancement spot. BAdI adapter class is no longer created. At runtime, the system creates a BAdI handle which performs the same functions as the adapter class.
NEW BADIs (CALL IN SYNTAX PROGRAM)
In case of new BAdIs, the GET BADI statement is used to acquire the BAdI handle. The CALL BADI statement is used to call the method of the BAdI handle.
However, if the system fails to retrieve an active implementation for the BAdI in the GET BADI statement, then the exception, cx_badi_not_implemented, is raised.
SEARCHING FOR BADIs
You can search for a BAdI in various ways:Using transaction SE84.
Using application related search. SE81 SE84.
Using program-related search.
For this you need to search for string, GET BADI, in your program. Then,
Double-click the reference variable to get the variable definition. Finally, double-click the BAdI name to access the corresponding enhancement spot.
This slide describes the steps for creating a BAdI implementation.
In the new BAdI implementations, filter values must be specified. More than one filter value can be specified. Along with single filter values, filter conditions can also be given using the operators <>, >, <, >=, <=, CP, NP.
Switch Framework offers a complete package of various industry solutions to SAP customers. The users can choose to activate any of these at their discretion.
Another purpose of this Framework is to create switches and assign them different packages, screen elements and menu entries. You can group these switches using a business function as shown here.