Saturday 14 December 2013

EXITS (ENHANCEMENT)

The enhancement concept allows you to add your own functionality to SAP's standard business applications without having to modify the original applications. To modify the standard SAP behavior as per customer requirements, we can use enhancement framework.

There are different ways to implement custom functionality in the SAP standard code. ex: User exits, customer exits, BADI etc.

User exits
These are implemented in the form of subroutines and hence are also known as FORM EXITs. The user exits are generally collected in includes and attached to the standard program by the SAP.
User exits are a type of system enhancement that was originally developed for the R/3 SD (Sales and distribution) module. User-exits are empty subroutines that SAP Developers have provided for you.
You can fill them with your own source code. Technically this is a modification.

Customer exits
SAP creates customer exits for specific programs, screens, and menus within standard applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang
your own add-on functionality onto these hooks.
Customer exits are nothing but a include in customer name space will be provided in the function module which starts with CALL CUSTOMER. You can fill them with your own source code. Technically this
is an enhancement. User exits generally refer to SD module while customer exits refer to all modules like MM, SD, PP, FICO etc.
Advantage:
- They do not affect standard SAP source code
- They do not affect software updates
Disadvantage:
- Customer exits are not available for all programs and screens found in the SAP System. You can only use customer exits if they already exist in the SAP System.
Types of Customer Exits
1. Function Module exits
2. Screen exits
3. Menu exits

1. Function Module exits
Function module exits are exits developed by SAP. The exit is implemented as a call to a function module. The code for the function module is written by the developer. You are not writing the code directly
in the function module, but in the include that is implemented in the function module.
Format: CALL CUSTOMER-FUNCTION '910'
2. Screen Exits:
Allow customer to add fields to a screen via a sub screen in an SAP program. The sub screen is called within the standard screen's flow logic.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR1
3. Menu exits:
Menu exits allow you to add your own functionality to menus. Menu exits are implemented by SAP and are reserved menu entries in the GUI interface. The developer can add his/her own text and logic for
the menu.
Function codes for menu exits all start with "+".
Format: +CUS (additional item in GUI status)