What are the different methods to find the user-exit for any requirement?

Hi Everybody,
What are the different methods to follow to find the user-exit for any requirement?
Thanks & Regards,
Nagaraju Maddi

The following program search all the user exits involved with a T-code:
Selection Text: P_TCODE: Transaction Code to Search
Text Symbols: 001 - Enter the Transaction Code that you want to search through for a User Exit
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® Modifications
    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.

Similar Messages

  • How to find the exact user exit for our requirement?

    Dear Mr. keerthi,
    can you please explain me how to find the exact user exit for our requirement?

    Hi sandip
    There is more than one method in which you can check for user-exits.The following method is used very often.
    <b>How to find the exact user-exit for your requirement.</b>
    1.     You can check the user exists using transaction SE85.
    2.     Repository Information System -> Enhancements -> Customer exits
    3.     You can search the user-exits by package name.
    4.     Double click on each exit name to check the function module exits.
    <b>The procedure to find the package name.</b>
    Execute transaction SE93 
    Enter the tcode of the transaction for which you want to check the user exit.
    Example: if you want to find the user-exit for purchase orders while changing, enter ME22n  and press display.
    You will get to see the package name
    But you need to confirm that the user exit will get triggered at the appropriate event.
    ( example: you might want some validations to be done ON SAVE of a purchase order)
    <b>Checking if the user-exit is getting triggered or not.</b>
    1.     Open the user exit function module (that you have got in step 4) in Tcode SE37.
    2.     Click on where used button. In the pop up that immediately appears choose only programs .
    3.     You will get a list of programs. Double click on the program name.
    4.     You will get the list of location where this function module user exit is used.
    5.     Place session break points at each of these location ( at each CALL FUNCTION statement)
    6.     Now go to your transaction ( say change purchase order tcode:Me22n) and check if the user exit is getting triggered on appropriate event.
    regards,
    Prasad

  • How to find out user exit for LI20

    any one please tell me how can find user-exit for LI20
    Regards,
    Venkat

    Well if you want to search user exits associated with the t-code LI20...
    then go to se93, enter the t-code LI20->click on display-> go the program-> go to find next in the top menu (under Edit) and write "user_exit" and select "In the main program" and and click on continue... in case if there is any user exit; it will show you.
    Regards,
    Raman

  • Find active user exit for a transaction code

    Hi All,
    Please help to find the active user exit for a transaction code.
    for Ex. below is the list of user exits for package VA ( for creation of sales order and changing sales order). Let me know which user exit is active and which is not active.
      Exit name    Short text
      SDTRM001  Reschedule schedule lines without a new ATP check
      V45A0001  Determine alternative materials for product selection
      V45A0002  Predefine sold-to party in sales document
      V45A0003  Collector for customer function modulpool MV45A
      V45A0004  Copy packing proposal
      V45E0001  Update the purchase order from the sales order
      V45E0002  Data transfer in procurement elements (PRreq., assembly)
      V45L0001  SD component supplier processing (customer enhancements)
      V45P0001  SD customer function for cross-company code sales
      V45S0001  Update sales document from configuration
      V45S0003  MRP-relevance for incomplete configuration
      V45S0004  Effectivity type in sales order
      V45W0001  SD Service Management: Forward Contract Data to Item
      V46H0001  SD Customer functions for resource-related billing
      V60F0001  SD Billing plan (customer enhancement) diff. to billing plan
    Thanks & Regards,
    Sabu

    Goto TADIR table give program id as R3TR ,Objec type as CMOD and execute.
    You will get all active exits in system.
    Exits related to SD may be in ZSD package.

  • Difference between the different structures while dealing with User-Exits

    While dealing with User-Exits, we come across the different structures/Tables like XVBAP,YVBAP,TVBAP,IVBAP,*VBAP....
    What is the difference between them ?

    Usually X<tablename> and Y<tablename> are used in change document management to determine records updated (Y is old values and X new ones).  (Look at transaction SCDO)
    T<tablename is an internal table read from database and I<tablename> is an import table parameter of the same structure. <tablename> is an equivalent of <tablename> declared with statement TABLES and contains usually the "old" value.
    Look at exit documentation. start at [User Exits In Sales Document Processing|http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/content.htm]
    Regards

  • To find perticular user exit for mb1b

    Hi all,
    Actually my requirement is
    The purpose of this enhancement is to detach the stock from source sales order item and attach the same stock to the target sales order item and simultaneously short closing the Sales Order item to the tune of transfer posting quantity.
    Means after attaching source saled order item qty then one bdc has to run.That bdc is to remove attached qty from source sales order.
    suppose source SO 1000234 item 10 qty 50
    target SO 1000987 item 10 qty 15
    Adding qty of 30 from source SO of perticular item.
    After completion of this.
    Then to run bdc to remove qty 30 from source SO.
    Then in source it should become balance as 20. like that.
    If any knows perticular User exit then please guide me.
    Regards,
    Lokesh.

    Hi ,
          For Userexit MB1B
    THE following are the userexits .
    MBCF0002            Customer function exit: Segment text in material doc. item
    MBCF0005            Material document item for goods receipt/issue slip
    MBCF0006            Customer function for WBS element
    MBCF0007            Customer function exit: Updating a reservation
    MBCF0009            Filling the storage location field
    MBCF0010            Customer exit: Create reservation BAPI_RESERVATION_CREATE1
    MBCF0011            Read from RESB and RKPF for print list in  MB26
    MB_CF001            Customer Function Exit in the Case of Updating a Mat. Doc.
    Please reward if useful.

  • Suggest the best method to find the duplicate values entry in the form

    Hi,
    Can u plz suggest a best logic for duplicate checking in forms while entering the data.
    for e.g when we enter empno,empname,sal etc.. details in a base table block,
    empname should not be duplicate. For this purpose for each entry of empname, I am using the logic in such a way that
    it will check from first record to last record in the loop. If entered empname already exists in the block it shows the error message.
    for this purpose I use the system variable system.cursor_record, Name_in function etc..
    But in the case of thousands or lacks of record in the form, Is this logic useful?? Plz suggest a best logic if you have?
    with thanks
    gms

    Hello,
    <p>Here is one solution</p>
    Francois

  • Need to find appropriate User Exit for VL04 for updating table LIKP

    Hi Gurus,
    I need to create split Deliveries using Transaction VL04. I have a custom field ZZINCOLOC (location) in table VBAP.
    The requirement is that when ever a sales order Line Item values for ZZINCOLOC differs, that is if Item 10 has value 1234 for ZZINCOLOC and then if Item 20 has value '4567' in ZZINCOLOC then 2 deliveries should be created through transaction VL04. I also need to add this custom field ZZINCOLOC in LIKP table (delivery Header). Now when the 2 deliveries are created , in the 1st delivery LIKP-ZZINCOLOC should be updated with VBAP-ZZINCOLOC where Item is 10 and when 2nd delivery is getting created, LIKP-ZZINCOLOC should be updated with VBAP-ZZINCOLOC where Item is 20.
    Can anyone tell me how to do this. Where to write the code.
    Thanks and Regards,
    Nabanita.

    hi
    Check this BADI - BADI_CUST_HIER
    Hope this helps

  • User Exits for transaction VF01 before saving the billing document

    Can any one say is there any user exit which exits before saving the billing document since i want to check the net value of the billing with the net value of sales order so that it should not go beyond the total amount specified in sales order.

    J_3RSINV
    SDVFX001  User exit header line in delivery to accounting
    SDVFX002  User exit for A/R line in transfer to accounting
    SDVFX003  User exit cash clearing in transfer to accounting
    SDVFX004  User exit G/L line in transfer to accounting
    SDVFX005  User exit reserves in transfer to accounting
    SDVFX006  User exit tax line in transfer to accounting
    SDVFX007  User exit: Billing plan during transfer to Accounting
    SDVFX008  User exit: Processing of transfer structures SD-FI
    SDVFX009  Billing doc. processing KIDONO (payment reference numbe
    SDVFX010  User exit item table for the customer lines
    SDVFX011  Userexit for the komkcv- and kompcv-structures
    V05I0001  User exits for billing index
    V05N0001  User Exits for Printing Billing Docs. using POR Procedu
    V60A0001  Customer functions in the billing document
    V60P0001  Data provision for additional fields for display in lis
    V61A0001  Customer enhancement: Pricing
    These are the Exits Available in the Package
    Jus try finding which will suffice ur Requirement.
    Regards,
    Mithun

  • How to find user exits for a specific field

    hi,
        How can we find a user exit for a specific fields .
    as i know Three ways to search user-exits
    1. SE80 look includes in a packages with name user-exits
    2.  by zreport which will fetch user-exit in a T-CODE
    3. SMOD
    but what if we have to find a user-exit for particular field for e.g bupla(bussiness place) in MIRO.
    Please suggest me.
    Thanks and  Regards ,
    Rahul Singh.

    Hi Rahul,
    Here is the procedure to create field exits.
    Step by step procedure for creating Field Exits
    There are eight steps to creating a field exit:
    Step 1: Determine Data Element
    Step 2: Go To Field Exit Transaction
    Step 3: Create Field Exit
    Step 4: Create Function Module
    Step 5: Code Function Module
    Step 6: Activate Function Module
    Step 7: Assign Program/Screen
    Step 8: Activate Field Exit
    Step 1: Determine Data Element
    u2022     Before you can begin adding the functionality for a field exit, you must know the corresponding data element.
    Step 2: Go To Field Exit Transaction
    u2022     The transaction to create field exits is CMOD.
    u2022     You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.
    u2022     From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.
    u2022     After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.
    NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.
    Step 3: Create Field Exit
    u2022     From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.
    u2022     After choosing this menu path, a dialog box will prompt you for the appropriate data element .
    u2022     Enter the data element name and click the u2018Continueu2019 pushbutton.
    u2022     Now, you will be able to create the function module associated to the data elementu2019s field exit.
    Step 4: Create Function Module
    u2022     You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the u2018Continueu2019 pushbutton.
    u2022     In the u2018Function moduleu2019 field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:
    FIELD_EXIT_<data element>
    u2022     You can add an identifier (an underscore followed by a single character ).
    u2022     The first function module for a data elementu2019s field exit must be created without an identifier.
    u2022     To create the function module, click on the u2018Createu2019 pushbutton, choose menu path Function module -> Create, or press u2018F5u2019.
    u2022     After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing u2018Enteru2019, you will be able to go ahead and create the function module.
    u2022     Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.
    Step 5: Code Function Module
    u2022     From the function moduleu2019s attributes screen, click on the u2018Source codeu2019 pushbutton or choose the Goto -> Function module menu path to the code of the function module.
    u2022     Here you will add your desired functionality for the field exit.
    u2022     Remember that field exitu2019s function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.
    u2022     You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.
    Step 6: Activate Function Module
    u2022     After coding the function module, you must remember to activate it.
    u2022     Use the Function module -> Activate menu path to activate the function module.
    u2022     At this point, you can return to the field exit transaction.
    u2022     You should be able to 'green arrow' back to this transaction.
    u2022     When you return to the field exit transaction, you will see an entry for the newly created field exit.
    u2022     At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.
    u2022     Also, the field exit will not be triggered yet because it is inactive.
    Step 7: Assign Program/Screen
    u2022     This step is only needed if you want to make a field exit local.
    u2022     To make a field exit local, select the field exit and click on the u2018Assign prog./screenu2019 pushbutton.
    u2022     In the dialog box , indicate the appropriate program name and screen number.
    This information indicates that the field exit is local to the specified screen in the specified program.
    u2022     In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the u2018Fld. Exitu2019 field.
    u2022     If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.
    u2022     If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.
    Step 8: Activate Field Exit
    u2022     The field exit must be active for it to be triggered by the system.
    u2022     Activate the field exit by choosing the Field exit -> Activate menu path.
    u2022     After assigning the field exit to a change request, its status will change to u2018Activeu2019 and it will be triggered automatically on the appropriate screen(s).
    NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers
    Execute the transaction SE38 with PROGRAM NAME - RSMODPRF
    Then give the Data Element Name for which field you want to create the exit(Just cross check with your field data element) and execute.
    then it takes you to SE37 with the function module name FIELD_EXIT_<DATA ELEMENT NAME> and then create the same function module.
    and in the coding part, You can write your logic to display the output of that field. and activate it.
    once you complete the above,
    Again execute SE38 transaction with program RSMODPRF and again click on Execute button without any Data Element Name. Now you select the data element which you have created and click on Assign prog/ Screen button and assign the program name and screen number of the filed and click on the menu Field Exit and Activate.
    Hope it helps.
    Regards
    Radhika
    Edited by: Radhika Pande on Nov 26, 2009 7:58 AM

  • Process to find user exit for transactions /sapapo/snptlb or /sapapo/sdp94

    Hi All,
         Can you help me out with the approach to find out user exits for transactions /sapapo/snptlb or /sapapo/sdp94?
    What I am looking for is the approach, i mean how to proceed with?
    Win full points for detailed answer !!
    Thanks a lot - Chandan

    Hi Chandan - this is the same as in any module of SAP:
    1) check SPRO
    If nothing is found then do the following:
    1) Goto SE24 and display class cl_exithandler
    2) Enter method GET_INSTANCE and create a break point at Line 25 (CASE sy-subrc)
    3) Execute SAP standard transaction and invoke the process for which you need to create custom coding
    4) Your break point will stop the process in debug mode - check the values of variable 'exit_name', it will contian the name of the BADI currently being executed.
    5) Continue to debug by pressing F8 to see other BADI's
    6) Repeat steps 3 thru 5 for each process that you want to find a BADI for
    Regards
    Andy

  • Find out user exits which should trigger while saving billing doc.(VA01)

    Hi All,
    please can u help me to find out user exits which should trigger while saving billing documents for VA01 transaction...I have already z report to find the user-exit for any transaction.I have tried in that also.
    Reply
    Ulhas

    Hi
    Try these
    USEREXIT_NUMBER_RANGE (Module pool SAPLV60A, program RV60AFZZ)                    
    The internal number range used in the standard system is specified                
    in the billing type table and can be changed in this user exit. This              
    user exit is only called when the billing documents is created.                                                                               
    USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program                       
    RV60AFZZ)                                                                         
    In this user exit additional fields for account determination that                
    are not provided in the standard system are copied into                           
    communication structure KOMKCV (header fields).                                                                               
    USEREXIT_ACCOUNT_PREP_KOMPCV (Module pool SAPLV60A)                               
    In this user exit additional fields for account determination that                
    are not provided in the standard system are copied into                           
    communication structure KOMPCV (item fields).                                                                               
    USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program                     
    RV60AFZC)                                                                         
    Depending on the number range, table TVFKD is used to set the                     
    billing date (country-specific requirments in Italy).                             
    USEREXIT_NUMBER_RANGE is automatically deactivated when this user                 
    exit is being applied.                                                                               
    USEREXIT_FILL_VBRK_VBRP (Module pool SAPLV60A, program RV60AFZC)                  
    This user exit is only called when the billing document is created.               
    It is used to provide the header and the item of the new billing                  
    document with deviating or additional data.                                       
      USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB)                    
      Printing the item line of a billing document can be supplemented or             
      changed.                                                                               
    USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)                     
      Printing the header line of a billing document can be supplemented              
      or changed.                                                                               
    User exits in program RV60AFZD                                                  
      Short descriptions of the user exits are contained in the program:                                                                               
    -   USEREXIT_RELI_XVBPAK_AVBPAK                                                                               
    -   USEREXIT_NEWROLE_XVBPAK_AVBPAK                                                                               
    -   USEREXIT_NEWROLE_XVBPAP_AVBPAK                                                                               
    e following user exits are available in report SAPLV60B for transfer              
    accounting (function group V60B):                                                                               
    EXIT_SAPLV60B_001: Change the header data in the structure acchd                
      You can use this exit to influence the header information of the                
      accounting document. For example, you can change the business                   
      transaction, "created on" date and time, the name of the person who             
      created it or the transaction with which the document was created.                                                                               
    EXIT_SAPLV60B_002: Change the customer line ACCIT                               
      You can use this exit to change the customer line in the accounting             
      document. This exit is processed once the ACCIT structure is filled             
      in with data from document header VBRK.                                                                               
    EXIT_SAPLV60B_003: Change the customer line in costing                          
      The customer line is filled in differently for costing. You can use             
      exit 003 to influence the ACCIT structure.                                                                               
    EXIT_SAPLV60B_004: Change a GL account item ACCIT You can add          
    information to a GL account item (such as quantity specifications)     
    with this exit.                                                                               
    EXIT_SAPLV60B_005: User exit for accruals                              
    Once all relevant data for accruals was entered in the GL account      
    item, you can add to this data with this exit.                                                                               
    EXIT_SAPLV60B_006: Change the control line ACCIT                       
    You can use exit 006 to add information to the control line.                                                                               
    EXIT_SAPLV60B_007: Change the installment plan                         
    You can use exit 007 to add information to the installment plan        
    parameters in the GL account item.                                                                               
    EXIT_SAPLV60B_008: Change the transfer structure ACCCR, ACCIT and      
    ACCHD                                                                  
    After the accounting document is filled in with data, you can use      
    exit 008 to change the document once again.                                                                               
    EXIT_SAPLV60B_010: Item table for customer lines                       
    You can use exit 10 to influence the contents of customer lines        
    before they are created.                                                                               
    EXIT_SAPLV60B_0011: Change the parameter for cash account              
    determination or reconciliation account determination                  
    You can use this exit to change inbound parameters in order to         
    influence account determination.                                       
    >                                                                      
    Thanks
    Shiva

  • How to find out user exits of t-code va03

    hi all
       how to find out user exits of any t-code .
    regards
    deepak

    Hi Deepak,
    <b>Try this code.</b>
    *& Report  Z_USEREXIT                                                  *
    REPORT  Z_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.
    <b>plz reward points if helpful or if it solves ur query.</b>
    Thanks
    Chinmay

  • IDoc Extension: Finding out user exit

    Hi,
    Is there any standard way of finding out user exit for the extended IDoc? like documentation...
    Thanks and Regards,
    Madhu

    Hello
    Here are some  documentation link for defining idoc types
    Customer Extensions, SAP and Customer Developments
    Refer to this forum link.
    Ale enhancement
    Program names ZX... are reserved for includes of exit function groups
    http://help.sap.com/saphelp_47x200/helpdata/en/dc/6b7d6243d711d1893e0000e8323c4f/frameset.htm
    Hope it will resolve your problem
    All The Best
    Priyanka
    Do reward Points.

  • User exit for different Material Document for different company code

    Hi,
    We want to have different no. range for Material document (GR) for different compnay code. Presently we have no. range at client level. Can we do with any userexit. If so pls. give the details.
    Regards
    Sai Krishna

    [user exit for generating external serial;
    [BADI MB_DOCUMENT_BADI;
    [user exit or any other enhancements during good receipt;

Maybe you are looking for