USER-EXIT EXAMPLE

Hi all,
        I'm completely unaware of user-exit and badi. Can anyone can explain me exactly these two concepts with realtime examples.... i want expalnation with some examples. Kindly help in this regards,
With thanks,
karthi.

Hi subramanian karthi  ,
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_
Example:
The program for transaction VA01 Create salesorder is SAPMV45A
If you search for CALL CUSTOMER-FUNCTION i program
SAPMV45A you will find ( Among other user exits):
CALL CUSTOMER-FUNCTION '003'
  exporting
    xvbak   = vbak
    xvbuk   = vbuk
    xkomk   = tkomk
  importing
    lvf_subrc = lvf_subrc
  tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
The exit calls function module EXIT_SAPMV45A_003
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)
Procedure 3:
Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
If you know the Exit name, go to transaction CMOD.
Choose menu Utillities->SAP Enhancements. Enter the exit name and press enter.
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-dd2c7c50c8e8
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
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-dd2c7c50c8e8
http://abap4.tripod.com/Other_Useful_Tips.html
BAdis:
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.
8) 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
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.
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-b832b1a0d0de
How to implement BAdi in Enhancement Framework
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
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

Similar Messages

  • Follow-up on Ravi's User Exits example

    Hi,
    Ravi's user exit example:
    You have a content data source with fields say customer,sale org, profit center and amount. You wish to add sales manager to this extractor. You <b><u>locate</u></b> the table and <u><b>field name and append that field to the extractor</b></u> and write a code to pick that field when the extractor extracts data. This piece of code is called exit. What it does is the system reads the customer code.
    In the above example explaining customer exists, regarding the field, can you clarify “locate the field”. I read that if this field were available in the LIS communication structure that would be an enhancement to the structure where we only move the field from the left to the right (extract structure). In this case an append structure will be generated in the corresponding Include structure.
    In the case of the user exit, my understanding is that the field in question, in this example, Sales Manager, is not available in the LIS Communication structure so I was expecting that you would state “create the field” but you said “locate the field”. Did you mean that, and if so, locate from where? Because if it is being located from the LIS communication structure then I would not expect a user exit, at least from my understanding.
    Thanks.

    Hi Amanda,
    Yes, a field can be created when none of the SAP defined fields are solving the issue on hand. In this case too User exits are used. These fields are then appended to the tables.
    So all fields are in some table or the other. The field that you require has to be located in these tables and appended to the extractor. This again requires User Exits.
    For LO Cockpit extractors, if the field is already available in the extracstructure in LBWE then it can be moved from left to right and no extra coding is required.
    Hope this helps.
    Kumar

  • User Exit Examples

    Hi,
    I am trying to look for User Exit examples in my trail Netweaver ABAP 7.01.
    can anyone help to see some sample codes and how user exits are called ?
    Thanks

    Thanks Matt for the help and suggestion,
    if you dont mind me asking, is it part of the forum rules not to ask for examples, or you just personally think it is not appropriate to ask what  asked ? I understand that it is not appropriate to ask without doing my own search
    and you might find my question too easy to ask here..anyhow.
    based on what I read before I post this question,  there are user exits and customer exits and both are different.
    a user exits is defined as a Form (subroutine) and called using PERFORM.
    and customer exit is defined as functions module and called using CALL CUSTOMER-FUNCTION
    http://www.allinterview.com/showanswers/23629.html
    but when I I did a search on the forum ( call user exit) , I got something confused me ,
    the first search hit was this:
    Call User-exit
    this question was marked answer even though the syntax seems to be for calling a customer exit and not a user exit.
    somewhere else, I found another confusing information, as they showed that use exits is defined as  MODULE.
    MODULE user_exit_0001 INPUT  ...
    http://www.sap-img.com/abap/what-is-user-exits.htm
    in this link, customer exit is considered a different generation of user exit and maybe this is why it is confusing to distinguish them .
    http://searchsap.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid21_gci1240915_mem1,00.html
    I simply thought it will be good if someone can clear this confusing for me by providing me an example.
    I am extracting all the source code of the system as html files , and I need to build hyperlinks.
    so if there is a call to any use exit , a hyperlink should be there to take me to where this exist is defined.
    I thought of asking first about user exits and then make second post for customer exits.
    Misbah

  • An user-exit example

    Hi all,
    Please tell me what you have coded as user-exit.
    Tell me the transaction and what you have done for this transaction as user-exit.
    I want to learn the user exit topic well.
    I will need user-exit too much and use also user-exit's screen but do not know how to do well.
    Thanks.

    Hi
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd 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.
    The naming standard of function modules for functionmodule exits is:
    EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    To find a Exit.
    Goto Transaction -- Find The Package
    SMOD >f4>Use the Package here to Find the Exits In the Package.
    Else if you Want to search by Application Area wise ,
    There is one more tab to find the Exits in the Respective Application Area.
    Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
    Now Run ur Transaction to Check if it Triggers.
    Thats it..
    Suppose you need to find out all the user exits related to a tcode.
    1. Execute the Tcode.
    2. Open the SAP program.
    3. Get the Development Class.
    4. Execute Tcode SE84.
    5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
    6. Enter the Development class and execute.
    Check out this thread..
    The specified item was not found.
    1. Type the transaction : system->status-> <PROG. NAME>
    2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
    3. Open CMOD utilities->SAP enhancements
    EDIT->All selections
    4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
    5. The displayed list contains the enhancements names for the transaction You were looking for.
    6. Create a project in CMOD and the code in default include->activate.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    which gives the list of exits for a tcode
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
    For information on Exits, check these links
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    http://www.planetsap.com/userexit_main_page.htm
    User-Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/ab038.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
    These links will help you to learn more on user exits.
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.allsaplinks.com/user_exit.html
    www.sap-img.com/abap/what-is-user-exits.htm
    Also please check these threads for more details about user exits.
    Re: Screen exit
    user exit and customer exit
    user exit
    1. Document on UserExits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    2. Finding User Exits...
    http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
    3. List of all User Exits...
    http://www.planetsap.com/userexit_main_page.htm
    1. Customer exits: Implemented as Function Modules within z includes. Anybody can change it and no access key is required.
    2. User Exit: Implemented as subroutines within includes (any include except y or z includes). You need access for the specific include and then you can any subroutine (user exit) within that Include.
    BADIs are the enhanced version of user exits where the same logic is implemented via classes and object (OOP)
    Enchancement point is the latest once introduces with ECC6.0 . Not very sure about that but you can change it without any access key.
    Please go through the following link which will help you understand the exits in a much better way:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/content.htm
    http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
    http://sap.niraj.tripod.com/id21.html
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.sap-img.com/ab038.htm
    User Exits.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    customer exits
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Menu Exit.
    http://www.sappoint.com/abap/spmp.pdf
    http://www.sappoint.com/abap/userexit.pdf
    http://www.sapdevelopment.co.uk/enhance/mod_sapmenu.htm
    http://www.sapdevelopment.co.uk/enhance/enhancehome.htm
    1. Previously there were only user-exits.
    2. Then came the concept of customer-exits.
    3. user exits were nothing but subroutines
    FORM/PERFORM
    called from standard programs.
    4. The FORM defintion was placed inside
    an empty include file.
    5. So It was called EVERYTIME.
    and we need to MODIFY/REPAIR the
    standard include .
    6. Then it came with concept of customer-exit
    7. It consists of calling a FUNCTION MODULE,
    which is called only if
    the user-exit is ACTIVATED (other wise not called)
    In this case, the code in put inside
    a pre-defined Z include.
    8. Functionality of both is same, howerver
    we can note the following important differences
    a) Customer exit is called only if activated.
    (hence, it does not waste resources)
    b) in customer exit, REPAIR does not happen
    to the standard include.
    Exits are basically the hooks whcih SAP has provided to add your own code. There are two types of Exits:

  • User Exit for For Variable G_Set_Formula_Exit on Report Writer

    Hi SAP Experts,
    I want to create user exit for formula variable for Cost Center Group with alphanumeric type ( like 1KOSET- but 1KOSET is a set variable). I will use it as one of my row formula in report writer.
    There is one alphanumeric user exit example, which is Controlling Area (#S010) in GS13. SAP message said that I can create other alphanumeric user exit by using user exit G_Set_Formula_Exit.
    Can someone advice on how to implement this user exit?
    Your advice on this issue is highly appreciated.
    Thanks,
    CW

    Hello Ce Wie,
    Were you able to implement G_SET_FORMULA_EXIT? I am also very interested on this issue.
    Thanks!
    Josep

  • Help on User Exits with example needed

    Hello Experts,
    Need help/material on:
    1)Understanding Advanced Customization (VOFM, User Exits)
    2)Calculating Freight Charges
    3)Integrating Credit and Payment Cards
    4)Interfacing with Other Modules (MRP, AR)
    5)Using Batch Delivery Processing
    Regards
    Innova

    Hi,
    There are a number of techniques SAP have used over the years to implement user-exits.
    The most recent exits will be found in CMOD. Using CMOD (or SMOD), you can list all the enhancements available, that use this technique. As  usual in the SAP world, the later the version of SAP you are using, the more exits are available.
    Other exits do not use the enhancement technique. For example, in Sales Order Processing (SAPMV45A), SAP have provided empty forms, such as USEREXIT_SAVE_DOCUMENT_PREPARE that can be used to provide customer functionality. With one client, this was used to set the blocking indicator on a sales order, if a manual change had been made to pricing. The requiredscript is written in between form and end form.
    Another technique is the use of validation and substitution rules in the financial modules.
    The best way to find the user exits available is through the IMG. The relevant nodes will take you to where the customisation can be performed. Usually, the associated IMG note details the use of each exit, though there are gaps.
    Award points if helpful.
    Message edited by
    Mohan

  • Any example documents on user exits

    Hi All,
    Can anybody send me some example documents on user exits and sample codes. Also let me know what is the diff in 4.7 ee version user exits and ealrier version exits. It seems there is few diff between latest version and earlier versions on user exits,please let me know. Thanks in advance.

    hi Vishal,
    U can check all these below links also
    http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
    FAQ's
    http://http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    http://www.easymarketplace.de/userexit.php
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    1. what is the defference between enhancement and user-exits?
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    Re: difference between user exits & customer exits
    Some Questions ! Plz help...
    http://searchsap.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid21_gci1190924_tax299358,00.html?bucket=ETA
    2. Difference between CMOD and SMOD?
    http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
    http://www.sap-img.com/abap.htm
    http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236095
    http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236107
    check these links..
    http://www.sapgenie.com/abap/tips_and_tricks.htm
    http://www.sap-img.com/abap/field-exits-smod-cmod-questions-and-answers.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    passing selet-option variable to subrouine...
    Regards,
    Naveen

  • Explain User exit concept with simple example

    Hi friends
    I am new member of this forum & i am learning ABAP.
    Kindly send me user exit concept with simple example to my mail ID so i can able to use it.
    mail ID  [email protected]
    thanks in advance
    Thanks & Regards

    Code SE18 is used to Identify the BADI available.
    Look for the string 'CL_EXITHANDLER' in the standard program. This is a class which has a method 'GET_INSTANCE' which is used to trigger BADI's from the Standard Program. The interface parameter for this static method 'EXIT_NAME' is used to pass the BADI to the method.
    Open Standard Program and do a global search 'CL_EXITHANDLER'.
    SE18 > give the BADI name found through above search.
    CUSTOMER_ADD_DATA > which has a method SAVE_DATA.
    T.Code SE19 is used to Implement BADI.
    SE19 > give the implementation name > Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.
    Intro.....
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    Check these links for info about badi..
    BADI's
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    BADI's
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /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
    http://www.esnips.com/web/BAdI
    http://www.allsaplinks.com/badi.html
    New to Badi
    check any fo the below links. this will def help u.
    http://www.allsaplinks.com/badi.html
    And also download this file....
    http://www.savefile.com/files.php?fid=8913854
    There are other tutorials on this site...
    http://sapbrain.com/Tutorials/tuto_download.html
    What are BAdIs?
    -> is an anticipated point of extension – these points act like sockets and exist in the original source code
    -> based on ABAP Objects. BAdI defines an interface that can be implemented by BAdI-implementations that are transport objects of their own
    ->Important! There are 2 roles: Enhancement Option-provider & Implementer.
    -> In the above context, Enhancement Implementation can be done only if option (hook) is provided by the Option-provider. In simple words there are no implicit BAdIs.
    Note: In the following slides, Definitions are created so as to understand the method of BAdI definition & for example purpose. As stated above this is the role of Enhancement Option-Provider.
    Classic BAdIs already exist since SAP Release 4.6
    BAdIs have been Re-implemented in ECC7.0 under the new Enhancement Framework & Switch Framework
    Classic BAdIs
    To understand what a powerful pattern a BAdI is, we will now define & then implement a BAdI
    BADI Class is created automatically.
    The various options are described below in detail:
    1. Enhanceable: Enhanceability of filter types can only be specified for filter-dependent BADI definitions under very special conditions. For example, the domain belonging to the filter type must be linked with a value table that is of the type E or G. A BADI implementation can then be created in one step by creating a new filter value that is automatically entered into the value table at save and also copied into the transport order of the BADI implementation. In addition, it is also possible to create a new filter value and, at the same time, a BADI implementation with the same name. Naturally, you can also specify existing filter values.
    You should select this feature if there is a prerequisite that a new filter value is created together with a new BADI implementation - that is, that BADI implementations are not created solely with existing filter values, although this, too, is possible.
    2. Multiple-Use
    3. Filter-Dependent
    Instance Methods can access all of the attributes of a class and can trigger all events of a class. Static Methods can only access static attributes and static events.
    Exceptions:
    Events:
    Events can be defined in classes or in interfaces. Corresponding methods can trigger these events with the RAISE EVENT statement. Each class (or interface) that is going to handle the corresponding event must implement a relevant handler method, and register it using the SET HANDLER statement. When an event occurs, the system calls all of the handler methods registered for that event.
    Like method definitions, events have a parameter interface. The only difference is that events may only have EXPORTING parameters.
    BADI : Businees Add IN's
    Business Add-Ins are SAP enhancement technique based on ABAP Objects.
    Where the SAP standard program is not going to fullfill the client requirement , we are going to add our own program to SAP standard program, without changing the standard prog.
    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
    Each BADI has two different Views.
    1.Definition view
    2.Implementation view
    T.C for BADI Definition is SE18.
    T.C for BADI Implementation is SE19.
    There are multiple ways of searching for BADI.
    • Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    • Finding BADI Using SQL Trace (TCODE-ST05).
    • Finding BADI Using Repository Information System (TCODE- SE84).
    1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
    Make sure the radio button “In main program” is checked. A list of all the programs with call to the BADI’s will be listed.
    The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter ‘INSTANCE’ will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
    2. Start transaction ST05 (Performance Analysis).
    Set flag field "Buffer trace"
    Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
    Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
    Push the button "Deactivate Trace".
    Push the button "Display Trace".
    The popup screen "Set Restrictions for Displaying Trace" appears.
    Now, filter the trace on Objects:
    • V_EXT_IMP
    • V_EXT_ACT
    Push button "Multiple selections" button behind field Objects
    Fill: V_EXT_IMP and V_EXT_ACT
    All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
    So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
    3. Go to “Maintain Transaction” (TCODE- SE93).
    Enter the Transaction VD02 for which you want to find BADI.
    Click on the Display push buttons.
    Get the Package Name. (Package VS in this case)
    Go to TCode: SE84->Enhancements->Business Add-inns->Definition
    Enter the Package Name and Execute.
    Here you get a list of all the Enhancement BADI’s for the given package MB.
    Have a look at http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /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
    How to develop BADI
    Rewards if useful.

  • User exit work with small example

    will someone show how to make user exit work with small example and sceenshot? i do not want legthy explanation /hard examples,only a stepwise example.
    points will get reward
    email:[email protected]

    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 i 1 project. If the enhancement is allready 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"

  • Need info regd User exits use with examples

    Hi!
    I'm SD consultant and I need some user exits info along with some examples. They are as follows
    USEREXIT_FIELD_MODiFICATION
    USEREXIT_MOVE_FIELD_TO_VBAK
    USEREXIT_MOVE_FIELD_TO_VBAP
    USEREXIT_PRICING_PREPARE_TKOMK
    USEREXIT_ACCOUNT_PREP_KOMPCV
    USEREXIT_FILL_VBRK_VBRP
    Thank you in advance

    Hi,
    Please check this link
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/automatically-populating-the-sales-order-field-in-va01-1623468
    http://help.sap.com/saphelp_40b/helpdata/pt/ff/f52c7dd435d1118b3f0060b03ca329/content.htm
    http://help.sap.com/saphelp_46c/helpdata/en/08/f62c7dd435d1118b3f0060b03ca329/content.htm
    Best regards,
    raam

  • Examples of code ritten in includes in user exits

    Can anyone send some examples on code written in includes of user exits.
                                       Thanks in advance

                   U S E R   E X I T   F O R   P A 0 0 0 8               *
    IF innnn-infty = '0008' AND
    ( ipsyst-ioper = 'INS' OR
       ipsyst-ioper = 'COP' ).
                 G L O B A L   D E C L A R A T I O N S                   *
      DATA:
          g_lga         TYPE lgart,      " Wagetype
          g_count(2)    TYPE n,
          g_cnt_blank(2) TYPE n,          " Record position for hrly WT
          g_cnt_hrly(2) TYPE n,          " Record position for hrly WT
          g_cnt_inc(2)  TYPE n,          " Record position for inc WT
          g_cnt_lng(2)  TYPE n,          " Record position for lng WT
          g_cnt_ret(2)  TYPE n,          " Record position for ret WT
          g_wtype(11)   TYPE c,          " Wage type
          g_wrate(11)   TYPE c,          " Wage rate
          g_ht510_rate  TYPE betrg,      " Default rate for WT0011 from T510
          g_maxrate_inc TYPE betrg,      " Maximum Incumbency Rate
          g_maxrate_lng TYPE betrg,      " Maximum Longevity Rate
          g_maxrate_ret TYPE betrg.      " Maximum Retention Rate
                      D A T A   D E C L A R A T I O N                    *
      DATA:
          it_9006       TYPE TABLE OF pa9006,
          st_9006       TYPE pa9006,
          i0008         TYPE p0008,
          st_grdcode    TYPE zthhr_grdcode.
                      F I E L D    S Y M B O L S                         *
      FIELD-SYMBOLS: <fs_wtype> TYPE ANY, " Used for Wage Type
                     <fs_wrate> TYPE ANY. " Used for Amount
                      C O N S T A N T S                                  *
      CONSTANTS:
        c_molga_10   type molga value '10',    " Country grp for US
        c_hlgar_0011 TYPE lgart VALUE '0011',  " Hourly Wage Type
        c_ilgar_0012 TYPE lgart VALUE '0012',  " Incumbent Wage Type
        c_llgar_0147 TYPE lgart VALUE '0147',  " Longevity Wage Type
        c_rlgar_01e0 TYPE lgart VALUE '01E0',  " Retention Wage Type
        c_subty_inc  TYPE subty VALUE '1',     " Subtype for Incumbency
        c_subty_lng  TYPE subty VALUE '4',     " Subtype for Longevity
        c_subty_ret  TYPE subty VALUE '5'.     " Subtype for Retention
                      P R O C E S S I N G                                *
    Typecast PRELP to PNNNN structure
      CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
        EXPORTING
          prelp = innnn
        IMPORTING
          pnnnn = i0008.
    Refresh & Clear Process variables.
      CLEAR:  g_lga, g_count, g_cnt_blank, g_cnt_hrly, g_cnt_inc,
              g_cnt_lng, g_cnt_ret, g_wtype, g_wrate, g_maxrate_inc,
              g_maxrate_lng, g_maxrate_ret.
    Populate all unexpired & applicable records of IT9006 of subtype:
    Incumbency, Longevity and Retention
      REFRESH: it_9006.
      SELECT * FROM pa9006 INTO TABLE it_9006
              WHERE pernr EQ i0008-pernr
                AND begda LE i0008-begda
                AND endda GE i0008-begda
                AND ( subty EQ c_subty_inc
                OR    subty EQ c_subty_lng
                OR    subty EQ c_subty_ret )
                AND zapplflg EQ 'X'.
    Sort IT9006 Table descending based on Amount
      SORT it_9006 BY zwage zaddamt DESCENDING.
    Check for validity of Pay Scale Group & Level
      SELECT * FROM zthhr_grdcode UP TO 1 ROWS
                      INTO st_grdcode
                     WHERE trfgr = i0008-trfgr
                       AND trfst = i0008-trfst.
      ENDSELECT.
      IF sy-subrc EQ 0.
      If valid, read the Maximum Incumbency Rate
        READ TABLE it_9006 INTO st_9006
                           WITH KEY zwage = c_ilgar_0012
                                    zgrdcode = st_grdcode-grdcode
                           TRANSPORTING zaddamt.
        IF sy-subrc EQ 0.
          g_maxrate_inc = st_9006-zaddamt.
        ENDIF.
      ENDIF.
    Get Max Longevity rate
      READ TABLE it_9006 INTO st_9006 WITH KEY zwage = c_llgar_0147
                         TRANSPORTING zaddamt. " to g_maxrate_inc.
      IF sy-subrc EQ 0.
        g_maxrate_lng = st_9006-zaddamt.
      ENDIF.
    Get Max Retention rate
      READ TABLE it_9006 INTO st_9006 WITH KEY zwage = c_rlgar_01e0
                         TRANSPORTING zaddamt. " to g_maxrate_inc.
      IF sy-subrc EQ 0.
        g_maxrate_ret = st_9006-zaddamt.
      ENDIF.
      CLEAR : g_count, g_cnt_blank, g_cnt_hrly, g_cnt_inc,
              g_cnt_lng, g_cnt_ret.
    Check Infotype 0008 Wagetype entries
      DO 40 TIMES
          VARYING g_lga FROM i0008-lga01 NEXT i0008-lga02.
        g_count = g_count + 1.
        IF NOT g_lga IS INITIAL.      " Fill max no of field filled
          g_cnt_blank = g_count.
        ENDIF.
        IF g_lga = c_hlgar_0011.      " Get Rec Pos for Hrly WT
          g_cnt_hrly = g_count.
        ELSEIF g_lga = c_ilgar_0012.  " Get Rec Pos for Inc WT
          g_cnt_inc = g_count.
        ELSEIF g_lga = c_llgar_0147.  " Get Rec Pos for Lng WT
          g_cnt_lng = g_count.
        ELSEIF g_lga = c_rlgar_01e0.  " Get Rec Pos for Ret WT
          g_cnt_ret = g_count.
        ENDIF.
      ENDDO.
      g_cnt_blank = g_cnt_blank + 1.  " Next Avl. Pos for WT entry
    Incumbency Processing
    0011 and 0012 both not found
      IF g_cnt_hrly = 0 AND  g_cnt_inc = 0.
    Do Nothing
    0011 Not found but 0012 found
      ELSEIF g_cnt_hrly = 0 AND  g_cnt_inc > 0.
        CONCATENATE 'I0008-LGA' g_cnt_inc INTO g_wtype.
        CONCATENATE 'I0008-BET' g_cnt_inc INTO g_wrate.
        ASSIGN (g_wtype) TO <fs_wtype>.
        ASSIGN (g_wrate) TO <fs_wrate>.
        IF g_maxrate_inc <> 0.
          <fs_wtype> = c_ilgar_0012.
          <fs_wrate> = g_maxrate_inc.
        ELSE.
        If WT0012 has expired in IT9006, revert to WT0011 with
          default rate from T510
          <fs_wtype> = c_hlgar_0011.
          SELECT betrg FROM t510 UP TO 1 ROWS
                       INTO g_ht510_rate
                      WHERE molga = c_molga_10
                        AND trfar = i0008-trfar
                        AND trfgb = i0008-trfgb
                        AND trfgr = i0008-trfgr
                        AND trfst = i0008-trfst
                        AND lgart = c_hlgar_0011
                        AND begda LE i0008-begda
                        AND endda GE i0008-endda.
          ENDSELECT.
          IF sy-subrc = 0.
            <fs_wrate> = g_ht510_rate.
          ENDIF.
        ENDIF.
    0011 found but 0012 Not found
      ELSEIF g_cnt_hrly > 0 AND  g_cnt_inc = 0.
        IF g_maxrate_inc <> 0.
        Update 9006 amount if greater. And Replace 0011 with 0012
          CONCATENATE 'I0008-LGA' g_cnt_hrly INTO g_wtype.
          CONCATENATE 'I0008-BET' g_cnt_hrly INTO g_wrate.
          ASSIGN (g_wtype) TO <fs_wtype>.
          ASSIGN (g_wrate) TO <fs_wrate>.
          IF <fs_wrate> < g_maxrate_inc.
            <fs_wtype> = c_ilgar_0012.
            <fs_wrate> = g_maxrate_inc.
          ELSE.
          Do Nothing
          ENDIF.
        ELSE.
        Do Nothing
        ENDIF.
    0011 and 0012 both found
      ELSEIF g_cnt_hrly > 0 AND  g_cnt_inc > 0.
      Rate in IT9006 exists.
        IF g_maxrate_inc <> 0.
        Remove existing 0011
          CONCATENATE 'I0008-LGA' g_cnt_hrly INTO g_wtype.
          CONCATENATE 'I0008-BET' g_cnt_hrly INTO g_wrate.
          ASSIGN (g_wtype) TO <fs_wtype>.
          ASSIGN (g_wrate) TO <fs_wrate>.
        If hourly rate < Max Inc Rate, Clear Hrly WT & update WT0012
          IF <fs_wrate> LT g_maxrate_inc.
            CLEAR : <fs_wtype>, <fs_wrate>.
          Update existing 0012 with new amount
            CONCATENATE 'I0008-LGA' g_cnt_inc INTO g_wtype.
            CONCATENATE 'I0008-BET' g_cnt_inc INTO g_wrate.
            ASSIGN (g_wtype) TO <fs_wtype>.
            ASSIGN (g_wrate) TO <fs_wrate>.
            <fs_wtype> = c_ilgar_0012.
            <fs_wrate> = g_maxrate_inc.
        If hourly rate > Max Inc Rate, clear WT0012
          ELSE.
            CONCATENATE 'I0008-LGA' g_cnt_inc INTO g_wtype.
            CONCATENATE 'I0008-BET' g_cnt_inc INTO g_wrate.
            ASSIGN (g_wtype) TO <fs_wtype>.
            ASSIGN (g_wrate) TO <fs_wrate>.
            CLEAR : <fs_wtype>, <fs_wrate>.
          ENDIF.
      Rate in IT9006 do not exists.
        ELSE.
        Let 0011 be there but remove 0012.
          CONCATENATE 'I0008-LGA' g_cnt_inc INTO g_wtype.
          CONCATENATE 'I0008-BET' g_cnt_inc INTO g_wrate.
          ASSIGN (g_wtype) TO <fs_wtype>.
          ASSIGN (g_wrate) TO <fs_wrate>.
          CLEAR : <fs_wtype>, <fs_wrate>.
        ENDIF.
      ENDIF.
    Longevity Processing
    Wage type 0147 already exists
      IF g_cnt_lng > 0.
        CONCATENATE 'I0008-LGA' g_cnt_lng INTO g_wtype.
        CONCATENATE 'I0008-BET' g_cnt_lng INTO g_wrate.
        ASSIGN (g_wtype) TO <fs_wtype>.
        ASSIGN (g_wrate) TO <fs_wrate>.
      IT9006 contains the rate.
        IF g_maxrate_lng > 0.
        Update the existing amount
          <fs_wtype> = c_llgar_0147.
          <fs_wrate> = g_maxrate_lng.
        ELSE.
        Remove Wage Type 0147
          CLEAR <fs_wtype>.
          CLEAR <fs_wrate>.
        ENDIF.
    Currently no 0147 exists
      ELSE.
      IT9006 contains the rate.
        IF g_maxrate_lng > 0.
        Add 0147 with amount
          CONCATENATE 'I0008-LGA' g_cnt_blank INTO g_wtype.
          CONCATENATE 'I0008-BET' g_cnt_blank INTO g_wrate.
          ASSIGN (g_wtype) TO <fs_wtype>.
          ASSIGN (g_wrate) TO <fs_wrate>.
          <fs_wtype> = c_llgar_0147.
          <fs_wrate> = g_maxrate_lng.
          g_cnt_blank = g_cnt_blank + 1.
      IT9006 does not contain the rate.
        ELSE.
        Do Nothing
        ENDIF.
      ENDIF.
    Retention Processing
    Wage type 01E0 already exists
      IF g_cnt_ret > 0.
        CONCATENATE 'I0008-LGA' g_cnt_ret INTO g_wtype.
        CONCATENATE 'I0008-BET' g_cnt_ret INTO g_wrate.
        ASSIGN (g_wtype) TO <fs_wtype>.
        ASSIGN (g_wrate) TO <fs_wrate>.
      IT9006 contains the rate.
        IF g_maxrate_ret > 0.
        Update the existing amount
          <fs_wtype> = c_rlgar_01e0.
          <fs_wrate> = g_maxrate_ret.
        ELSE.
        Remove Wage Type 01E0
          CLEAR <fs_wtype>.
          CLEAR <fs_wrate>.
        ENDIF.
    Currently no 01E0 exists
      ELSE.
      IT9006 contains the rate.
        IF g_maxrate_ret > 0.
        Add 01E0 with amount
          CONCATENATE 'I0008-LGA' g_cnt_blank INTO g_wtype.
          CONCATENATE 'I0008-BET' g_cnt_blank INTO g_wrate.
          ASSIGN (g_wtype) TO <fs_wtype>.
          ASSIGN (g_wrate) TO <fs_wrate>.
          <fs_wtype> = c_rlgar_01e0.
          <fs_wrate> = g_maxrate_ret.
          g_cnt_blank = g_cnt_blank + 1.
      IT9006 does not contain the rate.
        ELSE.
        Do Nothing
        ENDIF.
      ENDIF.
    Typecast the PNNNN to PRELP structure
      CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
        EXPORTING
          pnnnn = i0008
        IMPORTING
          prelp = innnn.
    Show Data Again Switch to display the field values again
      show_data_again = 'X'.
    ENDIF.

  • Example with user exit

    hallow
    did some one have a exaple (document) how to do user exit?
    Regards

    Hi
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd 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.
    The naming standard of function modules for functionmodule exits is:
    EXIT_<program name><3 digit suffix>
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    To find a Exit.
    Goto Transaction -- Find The Package
    SMOD >f4>Use the Package here to Find the Exits In the Package.
    Else if you Want to search by Application Area wise ,
    There is one more tab to find the Exits in the Respective Application Area.
    Implementing the Exit-- CMOD Create ProjectsAssgn your Component .
    Now Run ur Transaction to Check if it Triggers.
    Thats it..
    Suppose you need to find out all the user exits related to a tcode.
    1. Execute the Tcode.
    2. Open the SAP program.
    3. Get the Development Class.
    4. Execute Tcode SE84.
    5. Open the Node 'Envir. -> Exit Techniques -> 'Customer Exits -> Enhancements'
    6. Enter the Development class and execute.
    Check out this thread..
    The specified item was not found.
    1. Type the transaction : system->status-> <PROG. NAME>
    2 open SE37 , type EXIT<PROG NAME> and press F4 to get the list of function exits available.
    3. Open CMOD utilities->SAP enhancements
    EDIT->All selections
    4.type the function module name obtained in step 2, in fields 'component name' in 'additional selections' block. and execute.
    5. The displayed list contains the enhancements names for the transaction You were looking for.
    6. Create a project in CMOD and the code in default include->activate.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    which gives the list of exits for a tcode
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec079f5db911d295ae0000e82de14a/frameset.htm
    For information on Exits, check these links
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    http://www.planetsap.com/userexit_main_page.htm
    User-Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sap-img.com/ab038.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.sap-basis-abap.com/sapab013.htm
    http://sap.ittoolbox.com/documents/popular-q-and-a/user-exits-for-the-transaction-code-migo-3283
    These links will help you to learn more on user exits.
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.planetsap.com/userexit_main_page.htm
    http://www.allsaplinks.com/user_exit.html
    www.sap-img.com/abap/what-is-user-exits.htm
    Also please check these threads for more details about user exits.
    Re: Screen exit
    user exit and customer exit
    user exit
    1. Document on UserExits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    2. Finding User Exits...
    http://sap.ionelburlacu.ro/abap/sap2/Other_Useful_Tips.html#Finding_User_Exits
    3. List of all User Exits...
    http://www.planetsap.com/userexit_main_page.htm
    1. Customer exits: Implemented as Function Modules within z includes. Anybody can change it and no access key is required.
    2. User Exit: Implemented as subroutines within includes (any include except y or z includes). You need access for the specific include and then you can any subroutine (user exit) within that Include.
    BADIs are the enhanced version of user exits where the same logic is implemented via classes and object (OOP)
    Enchancement point is the latest once introduces with ECC6.0 . Not very sure about that but you can change it without any access key.
    Please go through the following link which will help you understand the exits in a much better way:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/content.htm
    http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
    http://sap.niraj.tripod.com/id21.html
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://www.sap-img.com/ab038.htm
    User Exits.
    http://www.erpgenie.com/sap/abap/code/abap26.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sapgenie.com/abap/code/abap26.htm
    http://www.sap-img.com/abap/what-is-user-exits.htm
    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
    http://www.easymarketplace.de/userexit.php
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    http://www.sappoint.com/abap/userexit.pdfUser-Exit
    customer exits
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Menu Exit.
    http://www.sappoint.com/abap/spmp.pdf
    http://www.sappoint.com/abap/userexit.pdf
    http://www.sapdevelopment.co.uk/enhance/mod_sapmenu.htm
    http://www.sapdevelopment.co.uk/enhance/enhancehome.htm
    1. Previously there were only user-exits.
    2. Then came the concept of customer-exits.
    3. user exits were nothing but subroutines
       FORM/PERFORM
       called from standard programs.
    4. The FORM defintion was placed inside
    an empty include file.
    5. So It was called EVERYTIME.
    and we need to MODIFY/REPAIR the
    standard include .
    6. Then it came with concept of customer-exit
    7. It consists of calling a FUNCTION MODULE,
    which is called only if
    the user-exit is ACTIVATED (other wise not called)
    In this case, the code in put inside
    a pre-defined Z include.
    8. Functionality of both is same, howerver
    we can note the following important differences
    a) Customer exit is called only if activated.
    (hence, it does not waste resources)
    b) in customer exit, REPAIR does not happen
    to the standard include.
    Exits are basically the hooks whcih SAP has provided to add your own code. There are two types of Exits:
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • How to find out the user exit is implemented

    Hi All,
    Kindly let me know the process to be followed to find out the User exit is implemented in SAP system.
    I have seen many senriors suggestions for some treads to check if there is any Exit is implemented in the process when the system is behaving differently rather standard.
    Is it the only way with help of ABAP'er we can find out or the functional consultant also can find out through some procedure?
    I tied in google for this doubt, but i could not get the relavant answer.Pleaea execuse me if this already answered.
    Thanks,

    Hi Krishna/TW,
    Thank you for your immediate replies. Sorry i think i have not explained correctly my requirment.
    Let me explain my requirement once again.Let us say Comapny has implemented one Exit in the project, now i want to find out what exactly the Exit was implemented.
    Example: In STO process user is able to increase the  qty in delivery. As per the client requriement system should not allow.
    This is not possible in standard to control even after maintainig  check over delivery field in 0VLP.
    For this comapny has already implemented one enahnceament.
    User Exit : USER EXIT_READ_DOCUMENT
    Program: MV50AFZ1
    like this when any one joined in the project we do not know what are all the Exits are implemented in the SAP system where we are working.
    So if i want to find out if there is any Exit or enhancement implemented, what is the process to find out?
    I hope now  am clear with my requirement.
    Thanks in advance.

  • Free Goods Problem and User Exit if needed in Sales Order

    Hello All,
    The problem is related to Free Goods in Sales Order which is given with an example -
    We have maintained Free Goods ( T Code - VBN1) in inclusive scenario which is as follows -
    For 210 PAC (Pack) of Material A 18 PAC Free.
    Where 1 PAC = 20 BT (Bottle) and 20 PAC = 1 CV (Case Pack)
    In the material master of Material A the Base Unit Of Measurement (UOM) = PAC and Sales UOM = Blank so that we can use any conversion factor maintained for the material.
    The conversion factors maintained for Material A are as follows -
    1 BT = 1BT
    1 PAC = 20 BT
    1 CV = 20 PAC
    Now when we are raising sales order for 11 CV the free goods are not generated in the Sale Order.
    Again if we maintain the Sales UOM in CV and raise the sales order it is showing :
    10 CV as main item and 1 CV as Free which is wrong because in the conversion factor we have already maintained 1CV = 20 PAC , Whereas in the inclusive scenario it is given 11CV = 210 PAC and 210 PAC = 18 PAC is free.So in any case it is taking into account 2 more PACs.
    Please suggest what need to be done in this case in respect of User Exit or Source Code in ABAP if needed.
    Thanks & Regards
    Priyanka Mitra

    Hello Priyanka Mitra,
    We are facing a problem same as you.
    How did you solve this problem?
    We are very glad if you teach it concretely.
    Please advise your solution to us.
    Thanks.

  • How to get the values from form calls in user exit?

    Hi all,
    I am not getting a specific value readily in an user exit.
    ?Can any one tell me how to find what are the fields,tables available in various form calls(visible while debugging) in an user exit.
    For example sapxkl is one ofthe callls...(sapxkl)<table>[] will hold some data.how to find what r the values available for <table>.
    Thanks.
    Edited by: sanjay_ask on Apr 16, 2010 10:43 PM

    HI ,
    Use this line of code
      field-symbols: <l_fs> type any.
      data: l_value type char20.
    Get Plant
      l_value =  '(SAPLCEI0)GV_WERKS'. " Here give the program name and variable name
      assign (l_value) to <l_fs>.
      v_werks = <l_fs>.         " Instead of V_werks use you internal table
    Thanks
    Subhankar

Maybe you are looking for

  • The macbook will not start.

    The macbook will not start. begins with "Deng", then the initial blank screen with flashing folder and question mark. Unfortunately, the DVD player is dead. I tried with a USB external drive and the installation disk but nothing happens (keys, C, D o

  • Titles created in Boris title crawl disappear after render

    I build a title roll in Boris Title Crawl for a weekly TV show that I edit in HDV 1080i60 (that is how I get the footage) that airs on Dish Network and DirecTV. I build the end credits in Boris Title Crawl using the "Roll" animation style. The roll w

  • Problem when using javax.crypto.KeyGenerator in netbeans

    This is my IDE information: Product Version: NetBeans IDE 6.0.1 (Build 200801291616) Java: 1.6.0_03; Java HotSpot(TM) Client VM 1.6.0_03-b05 System: Windows XP version 5.1 running on x86; Cp1252; en_US (nb) I am trying to develop a Test jar file. I c

  • Slide show settings

    Is there a way to set times for individual photos? I want some to be on screen longer than others.

  • Cannot access GUI on WLC 7.2

    I have a SRE 710 that has a WLC 710 on it. Everything was working including GUI...A interface got added and in the name there is a space ie:" WLC GUI"                   within a few minutes I reset a CUE on a SRE  and within a minute the GUI stopped