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

Enhancements

Former Member
0 Likes
1,586

Hi,

any one can solve this , how many types of enhancements and user exits are their,

can u explain me clearly with docmentation or real time examples.

Hi,

any one can solve this , how many types of enhancements and user exits are their,

can u explain me clearly with docmentation or real time examples.

5 REPLIES 5
Read only

JoffyJohn
Active Contributor
0 Likes
1,068

Enhancement means changing of SAP repository objects by customer with out modifications.

The four types of exits are

1) Menu exits

2) Screen exits

3) function module exits

4)field exits

check this link:

Read only

JoffyJohn
Active Contributor
0 Likes
1,068

the different types of enhancements are

Enhancements using customer exits

Customers' potential requirements which are not included in the standard software are incorporated in the standard as empty modification 'shells'. Customers can then fill these with their own coding. Enhancements can relate to programs, menus and screens. Upward compatibility is assured. In other words, SAP guarantees that the jump from the standard software to the exit and the interface which call the exit will remain valid in future releases.

Enhancements to ABAP/4 Dictionary elements

These are ABAP/4 Dictionary enhancements (creation of table appends), text enhancements (customer-specific key words and documentation for data elements) and field exits (creation of additional coding for data elements).

<b>The various types of customer exits</b>

Menu exits

Screen exits

Function module exits

Keyword exits

<b>menu exit</b>

Adding items to the pull down menus in standard R/3 applications .

<b> screen exit</b>

Adding fields to the screens within R/3 applications. SAP creates screen exits by placing special sub screen areas within a standard R/3 screen and calling a customer sub screen from within the standard dynpro's flow logic.

<b>function module exit</b>

Adding functionality to R/3 applications. Function module exits play a role in both menu and screen exits.

<b> keyword exit</b>

Add documentation to the data elements of key words defined in the ABAP/4 Dictionary. The system displays this documentation whenever a user presses F1 to get online help for a screen field.

Read only

Former Member
0 Likes
1,068

Hi devi viswanath ,

The following websites give complete details regarding enhancements

User Exit and Enhancement explained in detail .

http://sap.niraj.tripod.com/id21.html

Excellent web-site for user-exits

http://www.abaptalk.com/forum_posts.asp?TID=31&SID=3b18fa1dc8b7b9a1dbdedf36fe3bc2az&PID=56#56

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50...

http://abap4.tripod.com/Other_Useful_Tips.html

User exits :

1. Introduction:

User exits (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.

The naming standard of function modules for functionmodule exits is:

EXIT_SAP Enhancements. Enter the exit name and press enter.

You will now come to a screen that shows the function module exits for the exit.

3. Using Project management of SAP Enhancements, we want to create a project to enahance trasnaction VA01 .

- Go to transaction CMOD

- Create a project called ZVA01

- Choose the Enhancement assign radio button and press the Change button

In the first column enter V45A0002 Predefine sold-to party in sales document.

Note that an enhancement can only be used in 1 project. If the enhancement is already in use, and error message will be displayed

Press Save

Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.

Now the function module is displayed. Double click on include ZXVVAU04 in the function module

Insert the following code into the include: E_KUNNR = '2155'.

Activate the include program. Go back to CMOD and activate the project.

Goto transaction VA01 and craete a salesorder.

Note that Sold-to-party now automatically is "2155"

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

An example of a user exits :-

MODULE user_exit_0001 INPUT

CASE okcode.

WHEN 'BACK OR EXIT'.

CASE sy-dynnr.

WHEN '100'.

SET SCREEN 0.

LEAVE SCREEN.

WHEN '200'.

        • Note that you can write any code that satisfy your needs. ****

        • But in this case, this was wrote as a sample code for reference sake. ****

        • And you can test it. ****

SET SCREEN 100.

LEAVE SCREEN.

ENDCASE.

ENDCASE.

Finding User Exits

Procdedure 1:

Valid up to at least SAP release 4.0B

One way to find user exits applicable for a given SAP screen. From the SE38 screen, enter the desired screen main program, and click Utilities > Find In Source Code, and "CUSTOMER-FUNCTION" as the text to search for. This will give you a list of the user exits and where they are called from for all screens in the module pool.

Note: format of ABAP statement is CALL CUSTOMER-FUNCTION '009', for example. This is the statement called by a submodule attached to the main program.

Actual related function is EXIT_SAPLCOIH_009, for example. This example refers to customer function 9 in main program SAPLCOIH. Not all user exit functions are names as such, but this is the usual format.

If you are doing data validation and want to set an error message with a field open, you must be sure that the user exit you are using is linked to a calling module in the PAI section of the screen and the field you wish to be open was in the CHAIN statement which caused the PAI module to be invoked.

If you use a customer function which was invoked by a PBO module to validate data, the "MESSAGE" statement will cause the screen to return with the desired message at the bottom, but with all screen fields closed for input.

When you make changes to the include module for a given customer function, you must regenerate the related function group before you will see the changes included in the screen behaviour.

Procdedure 2:

Need to find user exits module-wise? Suppose we want to see the available sales module user exits. Go to transaction SE81. Click on SD, then click "edit" on the menu bar and choose select subtree. Click on "information system," Open Environment node, customer exits, and enhancements. Press F8 to get all the user exits for that module. In brief: SE81->SD->Select subtree->Information System->Envir->Exit Techniques->Customers exits->enhancements->Execute(F8)

USER EXIT (SAP Enhancement)

http://www.planetsap.com/userexit_det_1.htm

List of all USER EXIT's (4.6c version)

http://www.planetsap.com/Userexit_List.htm

User Exits in FI/CO

http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc

Excellent web-site for user-exits

http://www.abaptalk.com/forum_posts.asp?TID=31&SID=3b18fa1dc8b7b9a1dbdedf36fe3bc2az&PID=56#56

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50...

Enhancements,Creating a project,Assigning SAP enhancements to a project,Editing enhancement components,Activating a project

http://www.planetsap.com/userexit_main_page.htm

Find user exits with a TCode

http://www.erpgenie.com/abap/code/abap26.htm

SAP User Exits Routine

http://www.sap-basis-abap.com/sapab013.htm

BAdi:

SAP Business Add-Ins (BAdIs) are one of the most important technologies used to adapt SAP software to specific requirements. BAdIs were introduced with Release 4.6 and replace function module exits. This technology is not limited to SAP applications. BAdI calls can be integrated in customer applications. These can then be enhanced by other customer applications. In the various SAP applications, BAdI calls are implemented at places where enhancements are appropriate.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.

The enhancement technique is set up in such a way that it is possible to define interfaces for ABAP soure code, screens, GUI interfaces, and tables. These allow 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.

BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently. BADI/UserExists are used to enhance R/3 For customer Needs.

Actually there is no transaction to find when and where the BADI

is called.

1. You can see the BADI description to find why it is called.

2. Once you implemented and activated the BADI, put some break points

in the BADI and see "where else used" option to check in what all

programs this BADI is called. In the ITS debug, when you are doing

the operation what exactly the BADI description tells, it will take

to the break points and you have to do manually debug the whole thing.

I know its bit difficult to do manual debug the whole thing, it

takes lot of time, but you have to be very patience when you are

dealing with BADI's.

Transaction SE18 is the BADI equivalent of transaction SMOD

Transaction SE19 is the BADI equivalent of transaction CMOD .

To find the BADI to be implemented and then implement this via SE19.

These steps should enable you to find any BADI related to any transaction in a matter of minutes.

Procedure 1:

1) Go to the transaction SE37 to find your function module.

2) Locate the function SXV_GET_CLIF_BY_NAME.

3) Put a breakpoint there.

4) Now open a new session.

5) Go to your transaction. 6) At that time, it will stop this function.

7) Double click on the function field EXIT_NAME.

😎 That will give you name of the BADI that is provided in your transaction.

Business Add-Ins

Procedure 2:

1) Goto se24 (Display class cl_exithandler)

2) Double click on the method GET_INSTANCE.

3) Put a break point at Line no.25 (CASE sy-subrc).

4) Now Execute SAP standard transaction

5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.

6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.

7) This way you will find all the BADIs called on click of any button in any transaction

To find the BADI to be implemented and then implement this via SE19.

Check this blogs 2 find a BADI:

How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,

When to Use a BAdI?)

/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series

How to implement a BAdI And How to Use a Filter

/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework

Introducing Business Add-Ins

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0...

How to implement BAdi in Enhancement Framework

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb9...

Business Add-Ins

http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm

BAdI: Customer-Defined Functions in the Formula Builder

http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm

Difference Between BADI and User Exits

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

To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept

http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm

cheers!

gyanaraj

****Pls reward points if u find this helpful

Read only

Former Member
0 Likes
1,068

Hi,

Customizing exits allow 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 R/3 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 R/3 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 R/3 standard applications. You can only use customer exits if they already exist in the R/3 System. You find find more information about locating applications with pre-defined exits in Locating Applications that have Exits.

As part of the enhancement concept, it is possible for the customer to

add his own elements to application logic, screens and menus.

The current possibilities for enhancement are:

Text enhancements:

Allow the customer to add supplementary documentation for data fields

non-specific to a transaction, and to change key word texts.

Field exits:

Every screen element with data element reference can branch to PBO or

prior to PAI to a function module if desired. The field contents are

available here for doing special checks and making changes (e.g. user-

specific checks, authority checks, writing entered data and producing

statistics...).

Function exits:

From the main program you branch into a software level, in which you you

can store ABAP/4 coding. The applications programmer at SAP determines

where in the main program the function exit is placed, and which data is

imported/exported via the interface. The accompanying documentation

describes the functionality of the function exit.

Menu enhancements:

Pre-conceived menu items can be activated and named. On the function code

set at menu item selection, there can be a reaction in a relevant

function exit.

Screen enhancements:

The customer can determine the layout of areas in screens provided by the

applications developer. Here, additional information can be displayed or

data entered.

In a nutshell all of these are things so that the customer might be able to add code for enhancing certain functionalities without changing the standard sap code.

Go to transaction SE84->enhancements here you will find all kinds on enhancements.

find the link below for info about enhancements and modification.

http://help.sap.com/saphelp_47x200/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm

Regards