Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

difference bet user exits and customer exits functionally

0 Likes
881

can any body tell what are the differnces bet user exits , cutomer exits and badis functionally

can any body tell what are the differnces bet user exits , cutomer exits and badis functionally

6 REPLIES 6
Read only

Former Member
0 Likes
830

User Exits are "form-based" custom enhancements.

Customer Exits are Function Module-based custom enhancements.

BAdIs are Object-Oriented custom enhancements.

Read only

Former Member
0 Likes
830

Hi Hari,

Check these differences.

<b>User exits</b> (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen 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.

<b>Customer exits</b> 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.

<b>Business add-ins</b> are enhancements to the standard version of the system.

Business Add-In is a new SAP enhancement technique based on ABAP Objects.

They can be inserted into the SAP system based on specific user requirements.

Each Business Add-In has:

• at least one Business Add-In definition

• a Business Add-In interface

• a Business Add-In class that implements the interface

In order to enhance a program, a Business Add-In must first be defined

Subsequently two classes are automatically generated:

• An interface with ‘IF_EX_’ inserted between the first and second characters of the BADI name.

• An adapter class with ‘CL_EX_’ inserted between the first and second characters of the BADI name.

The Application developer creates an interface for this Add-In.

Hope this resolves your query.

Reward all the helpful answers.

Regards

Read only

Former Member
0 Likes
830

Hi Hari,

check this link.

diff betweem badi n customer exits........

http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm

Regards,

Priyanka.

Read only

Former Member
0 Likes
830

Hi,

1.userexits are used inSD module only but customer exits are in SD, MM and PP also

User Exits are "form-based" custom enhancements.

Customer Exits are Function Module-based custom enhancements.

User Exit

1. Implemented as Subroutines.

2. Created in SAP namespace.

3. You require access key to make changes

Customer Exit

1.Implemented as FM.

2. Created in customer namespace.

3. Do not require access key to make changes.

2.Difference between user exits & customer exits:

User exit - A user exit is a three character code that instructs the system to access a program during system processing.

SXX: S is for standard exits that are delivered by SAP. XX represents the 2-digit exit number.

UXX: U is for user exits that are defined by the user. XX represents the 2-digit exit number

Customer exit - The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 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.

regard if found useful

palak

Read only

Former Member
0 Likes
830

Hi Hari,

User Exits

USER EXITS are FORMS and are called by SAP standard programs using PERFORM.

Inside the form (user exit) you can read and change almost any global data from host program.

User exits are more flexible because you have more information to use in your code but on the other hand , it is very easy to manipulate erroneously global data and lead the standard program to a dump or even to make database inconsistent.

User-exit doesn’t have any classification.

Basically designed For SD module

User-exits can be written only using access-key

With user-exits the code , the developer has written will not be there for next version unless modification assistance tool is used

BADI's

Business Add-Ins are a new SAP enhancement technique based on ABAP Objects.

Badi’s allow for a multi-level system landscape (SAP, partner, and customer solutions, as well as country versions, industry solutions, and the like). Business Add-Ins can be created at each level within such a system infrastructure.

Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently.

Customer Exits

CUSTOMER EXITS are FUNCTIONS so they are called using CALLFUNCTION (or more exactly CALL CUSTOMER FUNCTION).

Inside a function (customer exit) you can only acces your

import/export/changing/tables parameters.

Customer exits are more restrictive but you are sure any

change you can make to any parameters will never lead to

inconsistency

In customer-exit we have function-module exit , screen exit

, menu exit.

Costomer exits Are available for MM,SD,FI,HR Basically

designed for all modules.

Reward points if useful.

Cheers,

Swamy Kunche

Read only

Former Member
0 Likes
830

Hi Hari Prasad,

In exits we have

1.User Exits

2.Customer Exits

User Exits

User exits are actually empty subroutines that SAP developers provide for you. You can fill them with your own source code.

The original purpose of user exits was to allow the user to avoid modification adjustment.

Example: Program SAPM45A

Include M45AFZB

How User Exits are defined?

The SAP developer creates a special include in a module pool. These includes contain one or more subroutines routines that satisfy the naming convention userexit_.

The calls for these subroutines have already been

implemented in the R/3 program.

Usually global variables are used.

After delivering them, SAP never alters includes created in this manner; if new user exits must be delivered in a new release, they are placed in a new include program

The purpose behind this type of system is to keep all changes well away from program source code and store them in include programs instead.

To this end, SAP developers create various includes that fulfill the naming conventions for programs and function groups.

This naming convention guarantees that SAP developers will not touch this include in the future. For this reason, includes of this nature are not adjusted during modification upgrade.

If any new user exits are delivered by SAP with a new release, then they are bundled into new includes that adhere to the same naming convention.

The last two letters in the name of the include refer to the include that the customer should use: "Z" is usually found here.

Customer Exits

The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 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.

If you want to enhance the functionality of your SAP System, you should take advantage of the exits available in standard R/3 applications. There are two main reasons why you should use exits rather than modifying SAP software yourself. Add-ons attached to exits have the advantage that:

They do not affect standard SAP source code

When you add new functionality to your SAP System using SAP’s exits, you do not alter the source code of standard SAP programs in any way. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but exist separately from SAP’s standard software package.

They do not affect software updates

When you add new functionality to your SAP System using SAP’s exits, your objects (called customer objects) must adhere to strict naming conventions. When it comes time to upgrade a to a new software release, customer objects’ names ensure that they will not be affected by any changes or new additions to the standard software package.

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.

There are several different types of customer exits. Each of these exits acts as hooks where you can attach or "hang" your own add-ons.

Menu Exits

Menu exits add items to the pulldown menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications.

SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with "+" (a plus sign). You specify the menu item’s text when activating the item in an add-on project.

Screen Exits

Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screen’s flow logic.

Function Module Exits

Function module exits add functions to R/3 applications. Function module exits play a role in both menu and screen exits. When you add a new menu item to a standard pulldown menu, you use a function module exit to define the actions that should take place once your menu is activated. Function module exits also control the data flow between standard programs and screen exit fields.

SAP application developers create function module exits by writing calls to customer functions into the source code of standard R/3 programs. These calls have the following syntax: CALL CUSTOMER-FUNCTION ‘001’.

Business Addins

Business add-ins are enhancements to the standard version of the system. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.

As with customer exits, two different views are available:

· In the definition view, an application programmer defines exit points in a source that allow specific industry sectors, partners, and customers to attach additional coding to standard SAP source code without having to modify the original object.

· In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard solution if one is available.

In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, country-specific versions, industry solutions, partner, customer, and so on). You can create definitions and implementations of Business Add-Ins at any level of the system landscape.

SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.

The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time. In addition, Business Add-Ins can be defined according to filter values. This allows you to differentiate between Add-In implementations using the filter Country or other criteria.

All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard. A single Business Add-In contains all of the interfaces necessary to implement a specific task.

The actual program code is enhanced using ABAP Objects. In order to better understand the enhancement technique behind the Business Add, we recommend reading the section ABAP Objects.

In order to enhance a program, you must first define a Business Add-In. The application developer creates an interface for the add-in. From this, enhancement management creates an adapter class that implements the interface and thus provides the interface for implementation by the customer, partner, and so on. The developer then creates an instance of the adapter class in the application program and calls the corresponding method at the appropriate time.

For each Business Add-In you have one interface and an adapter class that implements this. The interface is implemented by the user.

The generated class (Add-In adapter) has the following tasks:

· Control

The adapter class calls the active implementations.

· Filtering

If a Business Add-In is to be executed only under certain conditions, the adapter class ensures that only certain implementations will be executed.

This concept ensures mutlple use. Any Business Add-In that has been implemented once already can be implemented again by those groups listed to the right of the software chain shown in the above graphic.

Customers can find the enhancements in their system in the Implementation Guide (IMG) and in the component hierarchy. If a customer wishes to use a Business Add-In, he or she first creates an implementation. The customer must implement the methods and the enhancements, and afterwards activate the implementation of the enhancement. The enhancement's active components are then called at runtime.

Normally, a Business Add-In contains an interface and other additional components such as function codes for menu enhancements. In some cases, Business Add-Ins also include enhancements for screens. The enhancement, interface, and generated classes are all located in the appropriate application development namespace. Business Add-In implementations are created in the respective implementation namespace.

.For any futher queries revert back to me.

Reward points if useful.

Thanks ,

Surya Pydikondala.