Information on user exits

hi all ,
       i want to learn user exits , how to  use them and what are the uses of user exit ... can any one tell me the best link or documentation to learn user exits from the basics..
it will be great favour and person will be rewarded with points
Thanks and regards
nikesh kumar

check the foll link,
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
also refer
http://www.sap-img.com/abap/what-is-user-exits.htm
Creating menu exits
http://help.sap.com/saphelp_nw04/helpdata/en/c8/19762743b111d1896f0000e8322d00/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/83/7a18cbde6e11d195460000e82de14a/frameset.htm
For screen exits.
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
chech these links for user exists its usefull
http://www.allsaplinks.com/user_exit.html
http://help.sap.com/saphelp_47x200/helpdata/en/dd/561602545a11d1a7020000e829fd11/frameset.htm
http://www.sap-basis-abap.com/sapab013.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
refer
just refer to the link below for step by step procedure with screen shots
http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g
Check this link:
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975e643b111d1896f0000e8322d00/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/52/670ba2439b11d1896f0000e8322d00/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2d40358411d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/10/e7dbde82ba11d295a40000e8353423/content.htm
http://fuller.mit.edu/tech/dialog_programming.html
http://sap.mis.cmich.edu/sap-abap/abap09/index.htm
http://sap.mis.cmich.edu/sap-abap/abap09/sld011.htm
Also, refer this:
Overview
R/3 provides three "customization spots" that allow you to enhance FI/CO features without modifying the standard code. Although often collectively referred to as "user exits," two of the three have different names. SAP Enhancements are used to expand the standard functionality within SAP. Enhancements use function modules and are called from the standard SAP code. Each module in the system has a set of delivered enhancements that help companies expand the standard functionality where they need it. Enhancements were new in release 3.0.
The Open FI Interfaces or Business Transaction Events are also used to expand the standard functionality within SAP. These events are defined in the IMG. Business Transaction Events were new in release 4.0. They are not available for all modules and are not called on all integrated transactions into FI as of release 4.5B. This will change with each release and should be retested.
The older User Exits in FI/CO are "Z" programs that are defined in table T80D for client-dependent user exits, and in table T80I for client-independent user exits. These are also used to expand the standard functionality within the FI/CO modules. These User Exits have been available since the early releases of SAP. All of these FI/CO User Exits are listed in this document in the Configuring User Exits (Older). The list is included because these User Exits are not a part of the Enhancements or Business Transaction Events and do not have an Info System for searching.
Benefits• Standard SAP functionality can be enhanced without modification to the standard code.
• Upgrades do not erase the functionality and it does not have to be re-transported or re-entered into the system. The enhancements should be thoroughly tested when upgrading to ensure the system will still work as implemented.
Configuring SAP Enhancements
Basic Steps in Configuring an Enhancement
• Find the appropriate Enhancement.
• Enter the ABAP code in the "Z" program within the function module.
• Create a project.
• Add the Enhancement to the project.
• Activate the project.
Example Business Scenario for Enhancements
Company A has a requirement to validate all customer master records created with a U.S. address. The U.S. entity reports on the industry field on the customer master. This is only a U.S. requirement and should not be required for the other countries, so the field status would not work. To accomplish this requirement, Company A will need to set up an Enhancement for the customer master transaction. The necessary steps are detailed below with screenprints. This example was configured in a 4.6C system.
Detailed Steps
1. Tools ABAP Workbench Utilities Enhancements Definition Utilities List Enhancements
2. Do not execute this without any parameters! There are too many Enhancements and it will probably time out. You’re searching for a customer master exit. Enter mast in the short text (see Figure 1). You’ll start there. Searching for an exit can be tricky, so make sure you try several things before giving up.
3. Execute the search.
Start Your Search for a Master Exit Here
4. Look through the list until you find the Enhancement for User exits: Customer Master Data.
5. Double-click on the enhancement SAPMF02D. This will take you to the details of the Enhancement and list the function modules included in the Enhancement.
6. To continue, double-click on the function module EXIT_SAPMF02D_001
7. This will take you to the source code for the function module. Click on the Import tab to review the tables/fields that are available for the Enhancement
The Tables That Are Available for the Enhancement
8. To view the tables/fields that can be changed in the function module, click on the Export and Changing tabs. For this function module, these tabs are empty because you can only validate data. You cannot change any fields in this enhancement.
9. Return to the Source Code tab.
10. Scroll down until you see the Include statement in the program. The "Z" program listed after the Include is where your code will be written
Your Program Will Begin After the Include Statement
11. Double-click on the Include. You will be prompted to create the include. Click on Yes to create.
12. At this point you will be prompted to enter a development class and to create a transport request. If you do not know which development class to use, please contact your technical team.
13. Enter the following ABAP code into the program
User exit to ensure that all US customers have a group key
entered on the customer master.
if i_kna1-land1 = 'US' and
i_kna1-brsch = ' '.
message e001(F2).
endif.
The ABAP Code You Need to Enter
14. Note that the table name matches the table name in the import tab tables.
15. In this example you are using the standard message class F2 with message number 001. Normally, you will create your own message within your own message class. All customer message classes must begin with a "Z" and are created in transaction SE91.
16. Save the program.
17. The next step is to create the project. Go to transaction code CMOD or follow menu path: Tools ABAP Workbench Utilities Enhancements Project Management.
18. Enter the project name; begin the name with a "Z."
19. Click on the Create button.
Click on Create After You Type in the Project Name
20. Enter in a description for the project.
21. Click on the Enhancement Assignments button.
22. You will be prompted to save the enhancement. Click on Yes.
23. At this point you will be asked for a development class and to create a transport for the project. You may use the same one created when adding the ABAP code to the function module.
24. Enter the name of the enhancement SAPMF02D (see Figure 6).
Enter the Name of the Enhancement Here
25. Save the project.
26. Back out of the enhancement assignment.
27. Activate the project by hitting the Activate button.
The SAP Enhancement is ready to be tested! Try creating a customer with U.S. as the country and a blank group key. Be sure to test one with a group key to make sure the message is not displayed in error as well.
Configuring Business Transaction Events
Basic Steps in Configuring an Event
• Make sure the application is active for Business Transaction Events.
• Copy the sample interface function module into a "Z" function module.
• Enter the ABAP code into the source code section of the new "Z" function module. You may choose to create a "Z" program to enter the code into and then insert the "Z" program into your function module source code.
• Activate the function module.
• Assign the function module to the event, country and application.
Example Business Scenario for Business Transaction Events
Company A would like to copy the group key field from the vendor master into the allocation field on all the line items within a vendor invoice and payments, including the vendor lines. This requirement assumes only one vendor is posted to in a document.
To accomplish this requirement, Company A will use the Business Transaction Event 1130, Post Document: SAP Internal Field Substitution.
1. IMG Menu Path: Financial Accounting Financial Accounting Global Settings Use Business Transaction Events Environment Infosystem (Processes).
2. Find the correct Business Event. You are updating a field, so you select the Processes Info System instead of the Publish and Subscribe Info System.
3. Execute the search with the defaults.
4. Find the correct interface for updating a document: Post Document: SAP- Internal Field Substitution
Find the Correct Interface for the Business Event
5. Put your cursor on the event and click on the Sample Function Module button.
6. You are now in transaction SE37 – Function Builder. This is the function module (sample_process_00001130) you will need to copy into a "Z" name function module for your coding
Figure 8. This Is the Function Module You Need to Copy Your "Z" Name Function Module
7. Click on the Copy button.
8. Enter the "Z" function module name in the To Function Module field
9. Enter a Function Group. If you need to create a "Z" function group, go to transaction code SE37 and follow menu path: Go to Function Groups Create Group. A function group is a logical grouping of function modules, and the ABAP code is generated for function groups. You will be prompted for a development class and transport when creating the function group.
Enter Your "Z" Function Module Name Here
10. In Function Builder (transaction SE37), enter the new "Z" function module. Click on the Change button.
11. The system will default into the source code screen where you may enter your ABAP code.
12. Notice the tables available for the code. Additional tables may be declared if necessary.
13. Enter the following source code
tables: lfa1.
data: z_groupkey like lfa1-konzs.
z_groupkey = ' '.
loop at t_bseg.
check for vendor lines. If one is found, read the vendor master and
retrieve the group key field.
if t_bseg-koart eq 'K'.
select single konzs from lfa1 into z_groupkey
where lifnr = t_bseg-lifnr.
endif.
Move the group key field into all line items allocation field.
loop at t_bsegsub.
t_bsegsub-zuonr = z_groupkey.
modify t_bsegsub index sy-tabix.
endloop. "t_bsegsub
endloop. "t_bseg
The Screen Where You Enter Your Source Code
14. Save the function module.
15. Back out to the main Function Builder screen by clicking on the green arrow button.
16. Activate the function module by clicking on the Activate button
. Activate the Function Module from This Screen
17. Assign the function module to the event in the IMG: Financial Accounting Financial Accounting Global Settings Business Transaction Events Settings Process Function Modules of an SAP Appl.
18. Hit enter past the warning messages that this is SAP data.
19. Click on the New Entries button.
20. Enter the process for your interface. In your example it is 00001130.
21. Enter the country the interface is valid for. If it is valid for all countries, leave this field blank.
22. Enter the application the interface should be called for. If it should be called for all applications, leave this field blank. Please note that not all integrated transactions are programmed to go through these interfaces! You will need to test to find out!
23. Enter the new "Z" function module
Enter Your New "Z" Function Module Here
24. Save the settings. At this point you will be prompted for a CTS number for the configuration change.
25. The Business Transaction Event is complete! You are ready for testing.
Configuring User Exits (Older)
Basic Steps in Configuring an User Exit
• Create a "Z" program for the User Exits and enter the necessary ABAP code.
• Enter the new program name into table T80D.
• Configure the application to call the User Exit.
List of User Exits
• Variable Field Movements
• Substitutions in FI, CO, PCA
• Validations in FI, CO, PCA
• Rollups in SPL
• Fixed Field Movements in SPL
• Cost Center Summarization on Detail Screen
• Sets Formula Variables
Example Business Scenario for User Exits
Company A would like to add a "Z" field in the Special Purpose Ledger to capture a Business Unit field for reporting. They have used all the standard SAP fields such as Business Area and Profit Center. The field will only be used for reporting and is only needed in the Special Purpose Ledger. You created a special ledger table (ZZSPL1) with field Z_BUNIT and need to populate this field based on a combination of G/L account, fund and functional area.
To accomplish this requirement, Company A will use the Variable Field Movement User Exit. To make maintenance easier, table ZZBUSUNIT was created with the G/L account, fund and functional area fields as key fields, and the business unit field as a non-key field. You generated the table maintenance so the table could be updated using transaction SM30. SAP users update the business unit determination rules in table ZZBUSUNIT by entering the G/L account, fund and functional area, and then the business unit that combination should be posting to. The User Exit will read table ZZBUSUNIT using the G/L account, fund and functional area from the posting transaction and determine the business unit. The steps for using the user exit are detailed below. This example was created on a 4.6C system.
1. Copy the delivered template User Exit program RGIVU000_TEMPLATE into a "Z" program. Follow menu path Tools ABAP Workbench Development ABAP Editor (transaction code SE38). In early releases, the delivered program was RGIVU000.
2. You will be prompted for a development class and a transport. Please check with the technical team for the correct development class.
3. At the initial ABAP Editor screen, enter your new "Z" program name, select the Source Code button and click on Change
To Enter Your New Code, Select Source Code and Click on the Change Button
4. Enter the following code in the User Exit (Figure 14):
FORM E01_MVC USING FROM_FIELD TO_FIELD.
to_field = 'CORP'. "Set a default business unit.
read table zzbusunit to determine the business unit field.
select single z_bunit from zzbusunit into to_field
where hkont = accit_glx-hkont and
geber = accit_glx-geber and
fkber = accit_glx-fkber.
ENDFORM.
Figure 14. Enter Your New Code at This Screen.
5. Activate the program by clicking on the Activate button.
6. Change the configuration in the User Exit table to point to your new "Z" program.
7. Follow the IMG menu path: Financial Accounting Special Purpose Ledger Basic Settings User Exits Maintain Client Specific User Exits.
8. The entry to maintain is application area GIMV: Variable Field Movement. Enter your "Z" program
Enter Your "Z" Program in the Application Area GIMV: Variable Field Movement
9. Save the changes.
10. The final configuration step is to assign the User Exit in the variable field movement for your special ledger table. In the IMG: Financial Accounting  Special Purpose Ledger  Basic Settings  Master Data  Maintain Field Movements. Field movements control how the fields in a special ledger table are populated. They can be populated straight from other fields in a posting or through User Exits.
After You Assign the Business Unit Field and the G/L Account, the Exit Field Should Contain U01.
11. Assign the business unit field as a receiver and the G/L account as the sender. The Exit field should contain U01 (see Figure 16).
12. The User Exit number U01 calls User Exit E01_MVC form in the "Z" program.
13. Save the field movement.
14. You are ready to test your User Exit!
Reward points if useful.

Similar Messages

  • Where can I get more information about User exits?

    Where can I get more information about user exits,their related Tables and the source code of an User exit?
    Thanks

    would you please give the Internet addresses of these places?
    Mostly I want to get the source of some user exits in Oracle Application.
    If you know how and where can I get these sources,I'll appriciate if you let me know.
    Regards

  • Give me information on User-Exits.

    Hi,
      I have received an object on User-exits. I have no knowledge of user-exits. Could anyone please tell me Where can i get information on user-exits.
    Thanks in advance for your esteemed help, if you have any files please send it to my YAHOO id.
    Regards,
    Goutham.
    [email protected]

    You can type a transaction code and this program show you all passed user exits
    REPORT z_find_userexit NO STANDARD PAGE HEADING.
    *&  Enter the transaction code that you want to search through in order
    *&  to find which Standard SAP User Exits exists.
    *& Tables
    TABLES : tstc,     "SAP Transaction Codes
             tadir,    "Directory of Repository Objects
             modsapt,  "SAP Enhancements - Short Texts
             modact,   "Modifications
             trdir,    "System table TRDIR
             tfdir,    "Function Module
             enlfdir,  "Additional Attributes for Function Modules
             tstct.    "Transaction Code Texts
    *& Variables
    DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
    DATA : field1(30).
    DATA : v_devclass LIKE tadir-devclass.
    *& Selection Screen Parameters
    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK a01.
    *& Start of main program
    START-OF-SELECTION.
    Validate Transaction Code
      SELECT SINGLE * FROM tstc
        WHERE tcode EQ p_tcode.
    Find Repository Objects for transaction code
      IF sy-subrc EQ 0.
        SELECT SINGLE * FROM tadir
           WHERE pgmid    = 'R3TR'
             AND object   = 'PROG'
             AND obj_name = tstc-pgmna.
        MOVE : tadir-devclass TO v_devclass.
        IF sy-subrc NE 0.
          SELECT SINGLE * FROM trdir
             WHERE name = tstc-pgmna.
          IF trdir-subc EQ 'F'.
            SELECT SINGLE * FROM tfdir
              WHERE pname = tstc-pgmna.
            SELECT SINGLE * FROM enlfdir
              WHERE funcname = tfdir-funcname.
            SELECT SINGLE * FROM tadir
              WHERE pgmid    = 'R3TR'
                AND object   = 'FUGR'
                AND obj_name = enlfdir-area.
            MOVE : tadir-devclass TO v_devclass.
          ENDIF.
        ENDIF.
    Find SAP Modifactions
        SELECT * FROM tadir
          INTO TABLE jtab
          WHERE pgmid    = 'R3TR'
            AND object   = 'SMOD'
            AND devclass = v_devclass.
        SELECT SINGLE * FROM tstct
          WHERE sprsl EQ sy-langu
            AND tcode EQ p_tcode.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
        20(20) p_tcode,
        45(50) tstct-ttext.
        SKIP.
        IF NOT jtab[] IS INITIAL.
          WRITE:/(95) sy-uline.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
          WRITE:/1 sy-vline,
          2 'Exit Name',
          21 sy-vline ,
          22 'Description',
          95 sy-vline.
          WRITE:/(95) sy-uline.
          LOOP AT jtab.
            SELECT SINGLE * FROM modsapt
            WHERE sprsl = sy-langu AND
            name = jtab-obj_name.
            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
            WRITE:/1 sy-vline,
            2 jtab-obj_name HOTSPOT ON,
            21 sy-vline ,
            22 modsapt-modtext,
            95 sy-vline.
          ENDLOOP.
          WRITE:/(95) sy-uline.
          DESCRIBE TABLE jtab.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No of Exits:' , sy-tfill.
        ELSE.
          FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
          WRITE:/(95) 'No User Exit exists'.
        ENDIF.
      ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(95) 'Transaction Code Does Not Exist'.
      ENDIF.
    Take the user to SMOD for the Exit that was selected.
    AT LINE-SELECTION.
      GET CURSOR FIELD field1.
      CHECK field1(4) EQ 'JTAB'.
      SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

  • Updating VBAP line information in user exit when using VA02

    HI All
      I am trying to update the values of VBAP-CHARG in user exit form USEREXIT_SAVE_DOCUMENT for all line items. But i am unable to update the values though it gets reflected in xvbap.
    Kindly help me in this.
    thanks and regards
    shilpa

    Hello Shilpa,
    At the point where this userexit is called the data has already been sent to the database (in update task) hence any changes you do to the internal tables are not reflected on the database. If you want to change the data of the internal tables e.g. xvbap use the userexit USEREXIT_SAVE_DOCUMENT_PREPARE instead. This is called before the data is posted.
    Regards,
    Michael

  • To find out appropriate user exit/ badi for transaction VT01n

    Hi,
       I have the following requirement.
    Cass shipment type (VTTK-ADD03) field needs to be required and should be automatically populated upon creation of the shipment document.  The rules for populating the value (SO, ST, PO and RA) are as follows:
    If any of the orders on the shipment are customer order types, then the CASS shipment type should be a SO,
    If all of the orders are STO orders, then the Cass shipment type should be "ST",
    If all of the orders are PO orders, then the Cass shipment type should be "PO" , and
    If all of the orders are customer return orders, then the Cass shipment type should be "RA".
    I have to find out proper user exit / badi to do this.I have tried with many userexit but it won't work.
       Thanking in advance to give your suggestion in order to resolve it.
    With regards,
    Ajit.

    Hi this code will enable you to find the user exit for any transaction . Just give the transaction as input
    tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
             tables : tstct.
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    parameters : p_tcode like tstc-tcode obligatory.
    select single * from tstc where tcode eq p_tcode.
    if sy-subrc eq 0.
       select single * from tadir where pgmid = 'R3TR'
                        and object = 'PROG'
                        and obj_name = tstc-pgmna.
       move : tadir-devclass to v_devclass.
          if sy-subrc ne 0.
             select single * from trdir where name = tstc-pgmna.
             if trdir-subc eq 'F'.
                select single * from tfdir where pname = tstc-pgmna.
                select single * from enlfdir where funcname =
                tfdir-funcname.
                select single * from tadir where pgmid = 'R3TR'
                                   and object = 'FUGR'
                                   and obj_name eq enlfdir-area.
                move : tadir-devclass to v_devclass.
              endif.
           endif.
           select * from tadir into table jtab
                         where pgmid = 'R3TR'
                           and object = 'SMOD'
                           and devclass = v_devclass.
            select single * from tstct where sprsl eq sy-langu and
                                             tcode eq p_tcode.
            format color col_positive intensified off.
            write:/(19) 'Transaction Code - ',
                 20(20) p_tcode,
                 45(50) tstct-ttext.
                        skip.
            if not jtab[] is initial.
               write:/(95) sy-uline.
               format color col_heading intensified on.
               write:/1 sy-vline,
                      2 'Exit Name',
                     21 sy-vline ,
                     22 'Description',
                     95 sy-vline.
               write:/(95) sy-uline.
               loop at jtab.
                  select single * from modsapt
                         where sprsl = sy-langu and
                                name = jtab-obj_name.
                       format color col_normal intensified off.
                       write:/1 sy-vline,
                              2 jtab-obj_name hotspot on,
                             21 sy-vline ,
                             22 modsapt-modtext,
                             95 sy-vline.
               endloop.
               write:/(95) sy-uline.
               describe table jtab.
               skip.
               format color col_total intensified on.
               write:/ 'No of Exits:' , sy-tfill.
            else.
               format color col_negative intensified on.
               write:/(95) 'No User Exit exists'.
            endif.
          else.
              format color col_negative intensified on.
              write:/(95) 'Transaction Code Does Not Exist'.
          endif.
    at line-selection.
       get cursor field field1.
       check field1(4) eq 'JTAB'.
       set parameter id 'MON' field sy-lisel+1(10).
       call transaction 'SMOD' and skip first   screen.
    *---End of Program
    Just for your information the User exits available for VT01n are
    MV56AINI            Initialization of transaction control for transportation          
    V56AFCCH            Shipment processing: Check function code allowed                  
    V56AGTAR            User Exit for Filtering Shipping Unit Calculation                 
    V56ARCHV            Customer-spec. checks for archiving shipments                     
    V56ATKTX            Change the number of lines for text input in shipment             
    V56BMOD             Transportation processing: Field modification                     
    V56DISTZ            Shipment Processing: Determine Distance                           
    V56FCOPY            Shipment processing: Copy delivery data                           
    V56FSTAT            Shipment processing: Activities when setting a status             
    V56L0001            Status of Shipments for a Delivery                                
    V56LDELI            Read Delivery Data for Shipment Processing                        
    V56LOCID            Shipment Processing: Determine Location Identification            
    V56MVT04            Extensions for Collective Processing of Shipments                 
    V56SLDET            Shipment processing: Leg determination                            
    V56TDLIF            Filter Delivery Items for Shipment                                
    V56UCHCH            Shipment processing: Check whether changes were made              
    V56UCHCO            Check shipments are complete                                      
    V56UDLUP            Obsolete as of 4.6C: Delivery Update on Delivery Routines         
    V56UNUMB            Shipment number allocation                                        
    V56USTAT            User-individual definition of transportation planning status      
    V56USVDO            Update new objects for transport                                  
    V56USVDP            Preparation for updating new objects for transport?               
    Award points if helpful..
    Thanks

  • Using User Exits

    Hi,
    Can some one provide me how to use a standard User Exit.
    I have entered the exit number in the enchamcements and when i go to components and double click the include in the function exit, i am getting the message Program names zx...are reserved for includes for exit function groups.
    How can i change this to display mode and write my code.
    Regards,
    Sudhir

    Hi,
    See Following information  about user exits:
    If Z include is not allowing U should click the 'Enter' button and then click the 'Yes' button. Now u are allowed to put u r own code.
    Userexit is a methodology using which we can add our custom code in the SAP Standard transaction without disturbing the SAP Standard code. SAP will provide enhancement for one transaction. We can have more then one enhancement. Enhancement is a container with a set of userexits. SAP will provide only definition of the exit. Which does not contain any standard code. In the relevant transaction program SAP will their exit as a standard. The Userexit needs to be implemented inorder to provide a custom logic to serve business requirement.
       SMOD: It is used to find the enhancement related to different applications.
       CMOD: It is used to implement the userexit.
    There are 4 types of exits available:
    1)     Function-module Exits,
    2)     Menu exits,
    3)     Screen exits and
    4)     Field exits.
    1) Functionmodule exits:
        These exits are used to provide additional functionality to SAP standard transaction. By default SAP is not provided this functionality.
    For Example my requirement is, when user create or change customer and the customer belongs to US Country the Industry sector (brsch) field is not empty.
    Step1: Find the enhancement. For that one goes to SMOD.
    Click on F4 on Enhancement. We Search for enhancement. In this case we can           found the enhancement by giving the Description: mast. We got the enhancement as
    SAPMF02D: User exits: Customer master data.
    (Or)
    We find the enhancement at transaction level,
         Go to XD01 transaction click on System/Status/double click on Program name
         In this program we search for u201CCALL customer-functionu2019. We get the all related exits the starts with EXIT_enhancementname_Threedigitnumber. Sometimes it Will not an enhancement name.
    Step2: Go to CMOD create the custom project.
               Click on Enhancement assignments button
                     Give the Enhancement name: SAPMF02D
    Step 3: Click on Components button. Under that we found the one function module:
    EXIT_ SAPMF02D_001. Double Click on that function module. In the Source code tab of this function module SAP provide the one Zinclude. SAP doesnu2019t know our requirement. In this Zinclude we provide our own custom logic to make of the parameters provided in import, export and tables section.
    We write the following code:
    IF i_kna1-land1 = 'US' AND               
    i_kna1-brsch = ' u2018.
    MESSAGE e001 (f2) WITH u2018 Industry sector should not be blank for US Customersu2019.
    ENDIF.
    Step4: SAVE, CHECH and ACTIVATE the Cutsom project.
    Step5: Now go to XD01 Transaction We perform our requirement. After we donu2019t        want that requirement go to CMOD and deactivated the custom project.   
    If it is helpful rewards points
    Regards
    Pratap.M

  • Which user exit in FM IDOC_INPUT_ORDERS  to take IDOC segment E1EDP01 Plant

    If the EDI inbound create order  IDOC segment E1EDP01-WERKS is populated with plant code. Can some one please inform what user exit in FM IDOC_INPUT_ORDERS I need to modify to capture the plant code (E1EDP01-WERKS )  from IDOC and use to create and save that plant on a new order.
    We saw that in "LVEDAF5N" other fields like  E1EDP01-LPRIO are being moved from the incoming IDOC, but nothing for E1EDP01-WERKS.
    We are hoping that we can use any of the SAPLVEDA exist ......EXIT_SAPLVEDA_XXX but not sure which one.....so if some one out there has some information please share ......

    Try with the below exits.
    EXIT_SAPLVEDA_004
    EXIT_SAPLVEDA_005
    Thanks,
    Srinivas

  • How to find user exit in SPRO

    Hi experts,
                 how to find user exit in spro.
    the path is in spro.
    in spro->financial accounting>travel managment>travel expenses>transfer to accounting-->
    define assigment of wage type to symbolic account.
    when u click on this  it will ask for trip provision variant if we key in the work area number thne we get a screen . in that wage test key start date end date so on... are there so in the field KEY its empty so i want to find a user exit.can u please help me in this.
    regards,
    sunita.

    Hi,
    For more information on user exit,
    use the following link.
    Hope it is useful.
    http://****************/Tutorials/ExitsBADIs/ExitsMain.htm
    Regards,
    Phani.

  • Info on User Exits

    Hi All,
    I just entered the world of SAP SD. I need to know wat do you mean by user exits How do you use this best in SAP. Best explanation will be rewarded.
    Regards,
    Sreekanth

    Hello Srikanth,
    <b>Description of Function</b>
    User exits allow you to add additional functions to the SAP standard.
    Programs with user exits contain subroutine calls at certain points in their syntax that are identified by the prefix <b>USEREXIT</b>. The actual user exits are located in an include that has been assigned to a module pool. This is where customers can include any changes (enhancements) that they want to make to the system. These includes are always processed during program flow.
    <b>Advantage:</b> In principle, customers can modify anything they want that is found in the include (tables, structures, and so forth).
    <b>Disadvantage:</b> SAP cannot check the individual enhancements themselves which often leads to errors in the enhancement process
    <b>Range (Validity)</b>of User exit: Throughout the entire system
    <b>Access in the System</b>: SAP Reference IMG
    <b>Further Information</b>: User exits are primarily used in the sales and distribution component. You can find an overview of user exits as well as a description of those user exits that exist in SD in the SAP Reference IMG under Sales and Distribution -->System Modification -->User exits.
    Regards,
    Hemachandra K S
    <b>Don't forget to to reward points by marking as "Helpful" or "Very Helpful" or "Solved problem".</b>

  • What is the Difference 'VOFM' and 'User-Exit' ?

    What is the Difference 'VOFM' and 'User-Exit' ?

    If you need to implement any of these User exits, you first create a project for the user exit, then assign the user exit(s) to your project. Then you write the coding for the user exit, and finally activate the project.
    For general information about user exits, in the R/3 Library, go to Basis components and look at the Enhancements section. In addition there is detailed information about each user exit that you can access when you assign it to your project (see below).
    Activities
    Start by creating your project.
    1. Enter a name for your project.
    2. Select Modification -> Create.
    3. Enter a short text for your project and select save.
    Next assign the user exit to your project.
    4. Select Components.
    5. Enter the name(s) of the user exits you want to implement.
    6. Select SAP documentation, if you want detailed information on this user exit.
    7. Select save.
    8. Select back.
    Next make your coding modifications.
    9. Select enhancement components.
    10. Select change.
    11. Select the user exit you want to write code for.
    12. Select the include zxpbco01.
    The system will then prompt you to create this include, and you can continue to write your coding in it.
    Next activate your project.
    13. Return to the initial screen and select activate project.
    Routines
    Routines are short sub-programs that carry out various checks during document processing. In the SD module, you can create and process routines for copying requirements, data transfer, requirements and formulas using transaction VOFM. Besides the routines delivered to you with the system, you can create your own individual routines.
    Transaction VOFM allows you to follow a standardized procedure for creating routines. The name ranges are predefined for routines delivered to you with the system and for routines created by the customer. This name convention guarantees that your own routines are not overwritten during a Release upgrade.
    Copying requirements and data transfer
    The routines for coying requirements and data transfer are defined for the document types sales orders, deliveries, billing documents, sales activities, as well as for texts. You specify copying requirements and the data transfers when defining the document flow for each document type. You enter the routines for texts in the access sequences for texts.
    o Copying requirements determine which data is copied during the copying of documents. A copying requirement could define, for example, that the same customer must appear in the document header when you copy an inquiry to a quotation.
    o Routines for data transfer make a detailed control of the copying of fields possible. A data transfer could define, for example, that particular item fields can only be copied in combination with other particular fields and can only be copied into contracts or credit and debit memos.
    Requirements and formulas
    Routines for requirements and formulas are used for functions using the condition technique. You enter these routines in the pricing procedure or the condition types. Requirements are also used for statistics.
    o A requirement in pricing can determine that an access is dependent on a particular precondition. It can carry out a check of the document currency, for example, and, depending on whether it is a foreign or the local currency, allow or deny the access.
    o Formulas are used in pricing to define various factors for pricing. Formulas are defined for scale base value, condition base value, condition amount, group key, and rounding rules. The formula for a rounding rule could define, for example, that all calculated amounts are rounded to two places behind the decimal point during a price change of the condition record. The formula for a condition base value could define, that the header discount is distributed among the order items according to volume an not value of the item, as is the case in the standard SAP R/3 System.
    Creating routines
    There are two methods to create a routine
    1. Creating by overwriting
    When using this method, a note appears as a commentary in the routine to be newly created.
    2. Creating
    When creating a new routine, an ABAP with internal number assignment is created.
    You always have to activate a new routine before using it. Each routine for requirements and formulas, copying requirements and data transfers is stored in a separate program. For each new routine an entry is added in table TFRM and TFRMT. For each routine, a long text can be stored as a text module.
    Most routines must be changed in client 000. Transaction VOFM can be transported as XPRAs, which means that after the import all routines can be activated.
    Name ranges for routines
    The standard routines are to be within the number range 001-599 (for 2 digit formula numbers, 01-49)
    The user routines are to be within the number range 600-999 (for 2 digit formula numbers, 50-99).

  • Information Broadcasting Settings (Dynamic Change or User Exit)

    Hi,
    We are working on BI7 and we have a need to print a cost centre specific report on different cost centre specific printers.
    This relationship of user to cost center to printer is stored in a custom table(Ztable) as given below:
    User Id         Cost Center              Printer
    Abc               2000                        XYZ
    It is easy to setup a setting in the Information Broadcasting and use it for printing. But problem is coming from the fact that it is a static setting and a new setting is required for each record of above custom table (Ztable).
    Also, if there is any change in custom table entry, which is linked with R3 source system then we need to do manual changes in the Information Broadcasting settings. There are more than 520 printer records in this Ztable.
    It could be better, if there was some way to use a single information broadcasting setting and use it with different parameters but I could not find any such option.
    Other possibility is to create the settings by a background job but I did not see any such possibility as well.
    Is there any user exit that can be used to manipulate Information Broadcasting settings in background?
    Thank you very much for your help!
    Praveen

    hi praveen,
    One of the important enhanceents in BI7 broadcasting was to "individualize the content based on master data"......
       for example....If the last field in your master data record was an email address...
                            you can  create a report,   filter by the UserID (1'st field) and email it...
       I didn't send it to a printer....but I am guessing it should not be much different than emailing...
    Good luck, BB

  • How to put bin information to table T_QMAT thru user exit for stock remove?

    Hi,
    I have already use stock removal strategy 'F' and checked the flag 'User exit active', but the value in table T_QMAT filled by the standard system not include all vendors. So I need to use stock removal strategy " " and set up the table T_QMAT by the user exit.
    Do you know what is the user exit and the ABAP coding to put bin information to table T_QMAT for stock removal?
    Best Regards,
    Chris.

    Hi Chris,
    You can use the exit: EXIT_SAPLL03A_005 to populate t_qmat table based on your requirements. As you have already mentioned, it is important to check the flag: User exit active in SPRO, but bear in mind the stock removal strategy has to be BLANK. If you use F, then standard SAP auto-populates the T_QMAT table.
    Regards,
    Narendra.

  • User Exit For production Order Information System

    Dear All,
    I am looking for an User Exit,BADi's for production order Information System where i can see the Quantity which is already produced & The Quantity which is already passed from Quality.I mean the GR Quantity against the Production Order and against that Quantity how much is passed from the Quality.
    This is an Urgent Requirement from The Customer.
    Please Help.
    Thanks
    Sujay Joshi

    Dear
    You use QA33 report with following fields,,,,here you will get all required
    Inspection lot     
    Material     
    Plant     
    Insp. lot quantity     
    Base unit of measure     
    System status     
    Order     
    Unrestrictd-use stck     
    Scrap quantity     
    Sample     
    Blocked stock     
    Reserves     
    New material     
    MatTransfer posting     
    Posted to batch     
    Return to vendor     
    Other quantity     
    Other quantity 2     
    Quantity to be posted     
    Long-term sample qty     
    Inspected quantity     
    Destroyed quantity     
    Actual lot quantity     
    Defect. qty in IQty

  • KP04/KP06 User Exit or Badi information

    Hi,
    Could anybody please let me know if there are any user exits/BADI's available for KP04/KP06 tcodes.
    We are looking to substitute the exchange date to month end so that we could use month end exchange rates for CO plan data instead of month begin.
    Your help in this regard is highly appreciated.
    Regards
    Kasi

    no badi's available. Used following steps.
    Find the BADI related to your transaction in minutes
    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

  • BADI/USER EXIT information required for CLWF

    hi
    i want to badi/user exit for CLWF,to change its rcords through the BAPI:BAPI_CLASS_CHANGE,i found one badi CACL_CHANGENO_NEEDED for my requiremnet,its working as desired only in TCODE,but when i want to change the record through the BAPI,its not executing.
    Can any one please help me ,how to process in this?
    regds
    vipin

    Hi,
    Let s say
    var1 is from varaible
    var2 is to variable
    var3 is user exit variable
    USe the code like this:
    DATA:
    l_s_range TYPE rsr_s_rangesid,
    l_s_var TYPE rrs0_s_var_range.
    DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
    DATA: LOC_VAR_RANGE2 LIKE RRRANGEEXIT.
    WHEN 'VAR3'.
        IF I_STEP = 2.
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
            WHERE VNAM = 'VAR1'.
          LOOP AT I_T_VAR_RANGE2 INTO LOC_VAR_RANGE
            WHERE VNAM = 'VAR2'.
            CLEAR L_S_RANGE.
            L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(8).
            L_S_RANGE-HIGH = LOC_VAR_RANGE2-LOW(8).
    IF LOC_VAR_RANGE2(8) = '00000000'.
            L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW(8).
    ENDIF.
    IF LOC_VAR_RANGE(8) = '00000000'.
            L_S_RANGE-LOW = LOC_VAR_RANGE2-LOW(8).
    ENDIF.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT  = 'BT'.
            APPEND L_S_RANGE TO E_T_RANGE.
          EXIT.
          ENDLOOP.
          EXIT.
          ENDLOOP.
        ENDIF.
    With rgds,
    Anil Kumar Sharma .P

Maybe you are looking for