Skip to Content
avatar image
Former Member

Screens and Userexits

Hello all,

I am having a standard transaction with a header details and Item details screen. Now I want to add some fields to the header and item details screens.

How to figure out which screen and userexit to use for this purpose. Is there any standard way of figuring them out.

Please suggest and let me know if anyone needs more info.

Thanks,

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    Apr 19, 2006 at 11:10 PM

    Hi Naren,

    Here are some information regarding screen exits, menu exits, user exits and field exits.

    <b>SCREEN EXITS</b>

    Screen exits are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.

    It is determined be SAP where the sub screen will be displayed.

    The syntax is: CALL CUSTOMER-SUBSCREEN

    The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project, and the project has been activated.

    Note:

    Function codes are only processed in the main screens flow logic

    You are not allowed to enter a name for the subscreens command field

    You are not allowed to define GUI stauses

    You are not allowed to enter a value for Next screen

    The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules. These function modules belongs to the same function group as the subscreen

    Subscreens are edited with transaction CMOD. When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next time you display the calling screen

    The developer must create the subscreen and the corresponding PBO and PAI modules

    How to identify screen exits

    Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.

    Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits

    <b>MENU EXITS</b>

    Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu entries in the GUI interface. The developer can add his/her own text and logic for the menu.

    Function codes for menu exits all start with "+"

    Example

    We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will

    run report ZTEST.

    Goto transaction SE43 Area Menu Maintenance

    In Area Menu Paramenter type 'S000' (S triple Zero)

    Select Change and ignore all the warning screens

    Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"

    Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01

    Goto transaction SE93 and create transaction +C01 that calls report ZTEST.

    Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.

    <b>USER EXITS</b>

    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_<program name><3 digit suffix>

    The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION <3 digit suffix>

    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

    <b>FIELD EXITS</b>

    Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field. Example: The data element BBBNR identifies a company’s international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100.

    The field exit concept lets you create a special function module that contains this logic.

    You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.

    2. How to find user exits

    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.

    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 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"

    Also check this links for more information.

    http://www.sappoint.com/abap/userexit.pdf

    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm

    Hope this will help.

    Regards,

    Ferry Lianto

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 19, 2006 at 07:25 PM

    Checkout

    http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

    http://www.sap-basis-abap.com/abap/how-to-find-a-screen-exit-in-a-given-sap-standard-t-code.htm

    <u><b>FIND USER EXIT</b></u>

    REPORT Y_USER_EXITS 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.

    Thanks

    Saquib

    Message was edited by: Saquib Khan

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      For example ME21N transaction there is screen exit exist AMPL0001.

      If you display this screen exit in smod,

      Calling screen No. Area Called screen No. Short Text

      SAPLMBAM 0120 USER0001 SAPLXAMP 1000 Subscreen

      You can see following lines in PAI(0120) program SAPLMBAM ie., calling screen.

      CALL CUSTOMER-SUBSCREEN USER0001.

      If you want to include subscreen, You have create screen 1000 attached with the

      program SAPLXAMP which does not exist until create this screen.

      Under the same exit u can see some function module exists which will help to populate

      the data the sub screen added.

      Hope this helps.

      Thanks,

      Vamshi