Difference between User Exits and Customer Exits

by | Apr 23, 2020 | ABAP Differences

Home » SAP » ABAP » ABAP Differences » Difference between User Exits and Customer Exits

Preface – This post is part of the Differences in ABAP for Interviews series.


Before discussing the difference between User Exits and Customer Exits in SAP ABAP, let’s have a short introduction of the two.

The enhancement allows the user to add their functionalities to the SAP standard applications without modifying the original application. Enhancement Framework is used to modify the standard SAP behavior as per the customer requirements. There are different ways to add custom functionalities in standard codes. User Exit and Customer Exit are among them.

User Exits

User exits are implemented in the form of subroutines and hence also called FORM EXITs. They are collected in Include and are attached to the SAP standard program. They are empty subroutines where one can fill their source code. They are the type of system enhancements originally developed for R/3 SD(Sales and Distribution). Technically they modify the existing code.



Customer Exits

Customer exits act as hooks where one can hang their new functionalities. These are created for specific programs, screens, and menus within the standard applications. Technically, they are enhancements as they provide add-on functionality. They are used for all modules like MM, SD, FICO, PP etc.

There are 3 types of Customer Exits:

  1. Function Module Exits

    It is implemented as a call to the function module. It allows the developer to add code in include that is implemented in a function module at a specific location in an SAP application program.


  1. Screen Exits

    It allows the customers to add fields to a screen in the SAP program via sub-screen which is called within standard screen’s flow logic.


  1. Menu Exits

    These are implemented by SAP and are reserved menu entries in the GUI interface. It allows adding functionalities to menus.

Syntax:   +CUS (additional item in GUI status)

Now, let’s have a look at their difference.

Difference between User Exits and Customer Exits

User ExitsCustomer Exits
It is implemented in the form of subroutineIt is implemented for specific programs, screens, and menu within standard applications
It is technically a modification as existing code are changedIt is technically an enhancement as this provides add-on functionality
It refers to SD module onlyIt refers to all modules like MM, SD, FICO, PP etc.
All variables, structures, internal tables, etc. are exposed to be viewed and/or changedOnly variables, structures, and tables that are passed into the function through the interface are restricted to be viewed and/or changed
It requires an access keyIt does not require any access key
Changes remain after the upgradeChanges are lost after upgrade
It gets automatically activated whenever the application/program is activatedTo implement this, a project is created in CMOD then activated



Submit a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.