Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Manuelli
Participant
The purpose of this blog is to show the different ways of searching points to enhance SAP applications without having to modify SAP standard system.

Business case and philosophy


There is a business requirement which is not completely covered by SAP standard application. Before starting to think of modifying SAP standard or in a custom development which would mean a significant effort for the company not only at development but also to support it, it is worth to investigate if any of the alternatives given by SAP to enhance its applications could be used to cover the requirement.

When we talk in general about a user-exits, enhancements, BAdI’s…  we mean a  way to enhance SAP standard applications. In general they all work in similar way:

  1. SAP delivers the points where allows customers to modify SAP standard logic.

  2. Customer implements their logic in these points.


History



  • In the beginning there were user-exits.

  • Then customer-exits were added, wrapped in Enhancements and Projects.

  • Afterwards, Business Transaction event came for Finance.

  • A big step was done with Business Add-In’s (BAdI’s)

  • And finally, Enhancement Framework was delivered containing New BAdI’s, explicit enhancements and implicit enhancements.


Currently all these ways live together in SAP systems and frequently you can see in the code  BAdIs, customer-exits and user-exits at same point.



How to find enhancements



  1. Search in customizing

  2. Use SE84, filtering by package of your transaction (you get the package in SE93)

  3. SE80 - Enhancement Framework section

  4. What to search in the code and where to put breakpoints to find enhancements while debugging.



















































    Enhancement type Transact. Search in code for Breakpoint at
    User exit -- userexit --
    Customer exit

    SMOD

    CMOD


    CUSTOMER-FUNCTION

    (SE37: EXIT_<prog>_*)
    “CALL CUSTOMER-FUNCTION”
    BTE FIBF

    OPEN_FI_PERFORM_*

    OUTBOUND_CALL_*


    “BF_FUNCTIONS_FIND” and

    “PC_FUNCTION_FIND”
    BAdI – classic

    SE18

    SE19
    CL_EXITHANDLER

    • EXIT_NAME gives you the BAdI’s name.

    • Follow interface type of referenced variable to navigate to BAdI definition.




    (SE24)

    CL_EXITHANDLER=>GET_INSTANCE

    CALL METHOD cl_exithandler=>get_class_name_by_interface

    BAdI name is returned in exit_name.
    BAdI – new

    SE18

    SE19


    GET BADI

    Follow variable to see BAdI and to navigate to enhancement spot.


    GET BADI

    Check variable values to see BAdI’s name.
    Enhancement-point -- ENHANCEMENT-POINT --
    Enhancement-section -- ENHANCEMENT-SECTION --


  5. How to put all breakpoints at once


Implicit enhacement points


Implicit enhancement points are options to insert source code in SAP programs, functions modules and methods without making modifications.They are at certain points in the SAP program and they are not explicitly provided by SAP Development.

You can find implicit enhacement points at

  • The beginning and at the end of the source code of a function module.

  • The beginning and at the end of the source code of a method.

  • Implement additional methods.

  • The end of a structure (type) declaration (to include additional fields).

  • The beginning and at the end of subroutines (to enhance additional functions).

  • The end of includes (to implement additional functions and subroutines).


You  can see implicit enhancement points in ABAP code, from ABAP editor


I hope it helps.

 
1 Comment
Jelena
Active Contributor
Thanks for sharing! I'd suggest adding ABAP Development tag since it's the main one for ABAP content and will make it easier for others to find this.

I'm not sure if SAP ever declared the Enhancement Framework dead but from what I understand, BADI (or BAdI) is pretty much the only remaining reluctantly recommended way, going forward out of this list. Although, of course, there isn't always a better replacement and customers just keep using whatever they can.

There are some good posts on Enhancement Framework from the era when it was latest and greatest. This post series is just one example (2006, yikes!).

I should also mention new Extensibility Explorer for S/4HANA Cloud.