<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: User exits in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796227#M913076</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Goto Tcode SMOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go fpr F4 help of enhancements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now select information system button.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Enter package name and say ENTER.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 May 2008 09:24:07 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-15T09:24:07Z</dc:date>
    <item>
      <title>User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796221#M913070</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Where can I check the user exit of a particular program?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:15:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796221#M913070</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796222#M913071</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZNEGI16 .&lt;/P&gt;&lt;P&gt;TABLES : TSTC,&lt;/P&gt;&lt;P&gt;TADIR,&lt;/P&gt;&lt;P&gt;MODSAPT,&lt;/P&gt;&lt;P&gt;MODACT,&lt;/P&gt;&lt;P&gt;TRDIR,&lt;/P&gt;&lt;P&gt;TFDIR,&lt;/P&gt;&lt;P&gt;ENLFDIR,&lt;/P&gt;&lt;P&gt;SXS_ATTRT ,&lt;/P&gt;&lt;P&gt;TSTCT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : FIELD1(30).&lt;/P&gt;&lt;P&gt;DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : P_TCODE LIKE TSTC-TCODE,&lt;/P&gt;&lt;P&gt;P_PGMNA LIKE TSTC-PGMNA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA wa_tadir type tadir.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT P_TCODE IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSEIF NOT P_PGMNA IS INITIAL.&lt;/P&gt;&lt;P&gt;TSTC-PGMNA = P_PGMNA.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT = 'PROG'&lt;/P&gt;&lt;P&gt;AND OBJ_NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE : TADIR-DEVCLASS TO V_DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TRDIR&lt;/P&gt;&lt;P&gt;WHERE NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;IF TRDIR-SUBC EQ 'F'.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TFDIR&lt;/P&gt;&lt;P&gt;WHERE PNAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM ENLFDIR&lt;/P&gt;&lt;P&gt;WHERE FUNCNAME = TFDIR-FUNCNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT = 'FUGR'&lt;/P&gt;&lt;P&gt;AND OBJ_NAME EQ ENLFDIR-AREA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE : TADIR-DEVCLASS TO V_DEVCLASS.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM TADIR INTO TABLE JTAB&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT in ('SMOD', 'SXSD')&lt;/P&gt;&lt;P&gt;AND DEVCLASS = V_DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSTCT&lt;/P&gt;&lt;P&gt;WHERE SPRSL EQ SY-LANGU&lt;/P&gt;&lt;P&gt;AND TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;WRITE:/(19) 'Transaction Code - ',&lt;/P&gt;&lt;P&gt;20(20) P_TCODE,&lt;/P&gt;&lt;P&gt;45(50) TSTCT-TTEXT.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;IF NOT JTAB[] IS INITIAL.&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorting the internal Table &lt;/P&gt;&lt;P&gt;sort jtab by OBJECT.&lt;/P&gt;&lt;P&gt;data : wf_txt(60) type c,&lt;/P&gt;&lt;P&gt;wf_smod type i ,&lt;/P&gt;&lt;P&gt;wf_badi type i ,&lt;/P&gt;&lt;P&gt;wf_object2(30) type C.&lt;/P&gt;&lt;P&gt;clear : wf_smod, wf_badi , wf_object2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get the total SMOD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT JTAB into wa_tadir.&lt;/P&gt;&lt;P&gt;at first.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 'Enhancement/ Business Add-in',&lt;/P&gt;&lt;P&gt;41 SY-VLINE ,&lt;/P&gt;&lt;P&gt;42 'Description',&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;endat.&lt;/P&gt;&lt;P&gt;clear wf_txt.&lt;/P&gt;&lt;P&gt;at new object.&lt;/P&gt;&lt;P&gt;if wa_tadir-object = 'SMOD'.&lt;/P&gt;&lt;P&gt;wf_object2 = 'Enhancement' .&lt;/P&gt;&lt;P&gt;elseif wa_tadir-object = 'SXSD'.&lt;/P&gt;&lt;P&gt;wf_object2 = ' Business Add-in'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_GROUP INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 wf_object2,&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case wa_tadir-object.&lt;/P&gt;&lt;P&gt;when 'SMOD'.&lt;/P&gt;&lt;P&gt;wf_smod = wf_smod + 1.&lt;/P&gt;&lt;P&gt;SELECT SINGLE MODTEXT into wf_txt&lt;/P&gt;&lt;P&gt;FROM MODSAPT&lt;/P&gt;&lt;P&gt;WHERE SPRSL = SY-LANGU&lt;/P&gt;&lt;P&gt;AND NAME = wa_tadir-OBJ_NAME.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'SXSD'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For BADis &lt;/P&gt;&lt;P&gt;wf_badi = wf_badi + 1 .&lt;/P&gt;&lt;P&gt;select single TEXT into wf_txt&lt;/P&gt;&lt;P&gt;from SXS_ATTRT&lt;/P&gt;&lt;P&gt;where sprsl = sy-langu&lt;/P&gt;&lt;P&gt;and EXIT_NAME = wa_tadir-OBJ_NAME.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 wa_tadir-OBJ_NAME hotspot on,&lt;/P&gt;&lt;P&gt;41 SY-VLINE ,&lt;/P&gt;&lt;P&gt;42 wf_txt,&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;AT END OF object.&lt;/P&gt;&lt;P&gt;write : /(105) sy-ULINE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_TOTAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/ 'No.of Exits:' , wf_smod.&lt;/P&gt;&lt;P&gt;WRITE:/ 'No.of BADis:' , wf_badi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/(105) 'No userexits or BADis exist'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/(105) 'Transaction does not exist'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : wf_object type tadir-object.&lt;/P&gt;&lt;P&gt;clear wf_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET CURSOR FIELD FIELD1.&lt;/P&gt;&lt;P&gt;CHECK FIELD1(8) EQ 'WA_TADIR'.&lt;/P&gt;&lt;P&gt;read table jtab with key obj_name = sy-lisel+1(20).&lt;/P&gt;&lt;P&gt;move jtab-object to wf_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case wf_object.&lt;/P&gt;&lt;P&gt;when 'SMOD'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;when 'SXSD'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Methods For Finding Exits.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Method #1: Using Transaction CMOD &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Transaction CMOD contains search functionality to help locate enhancements.&lt;/P&gt;&lt;P&gt;- Selecting the "Utilities -&amp;gt; SAP enhancements" menu path in transaction CMOD will take you to an enhancement selection screen .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- You can limit the search for enhancements based on:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Enhancement name&lt;/P&gt;&lt;P&gt;Development class&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- After clicking on the &amp;#145;Execute&amp;#146; pushbutton (or &amp;#145;F8&amp;#146;) on the selection screen, the system will display a listing of the development classes that contain enhancements (see graphic above).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- From this listing, you can double-click a development class to display its enhancements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- If you have clicked on the &amp;#145;Display components&amp;#146; pushbutton on the selection screen (see graphic on previous page), the components of each enhancement will automatically be displayed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remark: To use this search method one must either know the part of the enhancement name or the development class. But if one looks at SAP&amp;#146;s naming convention for user exits (see note below), the screen numbers/program names/ function codes/etc are contained in the components name and there is no scope for that in selection options. Also one cannot restrict the search to only one type of exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Method #2: Using SAP Application Hierarchy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Selecting the "Overview -&amp;gt; Applic. hierarchy -&amp;gt; SAP" menu path in the ABAP/4 Development Workbench will take you to a listing of all standard SAP applications and components .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- To locate a user exit for a particular application, follow these steps &lt;/P&gt;&lt;P&gt;from the SAP Application Hierarchy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Select the appropriate application by single clicking on it.&lt;/P&gt;&lt;P&gt;- Choose the "Edit Sel./desel. subtree" menu path.&lt;/P&gt;&lt;P&gt;- Click on the &amp;#145;Repository Infosys.&amp;#146; pushbutton.&lt;/P&gt;&lt;P&gt;- This will take you to the ABAP/4 Repository Information System.&lt;/P&gt;&lt;P&gt;- Double click on the &amp;#145;Environment&amp;#146; branch.&lt;/P&gt;&lt;P&gt;- Double click on the &amp;#145;Customer enhancement&amp;#146; branch.&lt;/P&gt;&lt;P&gt;- Double-click on the &amp;#145;Customer exit&amp;#146; branch.&lt;/P&gt;&lt;P&gt;- This will take you to the customer exit (or enhancement) selection screen with the appropriate development class for the application selecting on the Application Hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Click on the &amp;#145;Execute&amp;#146; pushbutton.&lt;/P&gt;&lt;P&gt;- This will take you to a listing of all enhancements that meet the selection criteria.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From this listing, you can display the components of each enhancement and the documentation. You will be taken automatically to transaction SMOD from the ABAP/4 Repository Information System.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remark: To use this one must have knowledge about the application hierarchy to which that particular enhancement belongs. Also one has to explode individual enhancements to identify weather the component is contained in that enhancement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Like previous method, there is no scope for selection option on the components name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Method #3: Writing a small report program&lt;/P&gt;&lt;P&gt;The details about projects, enhancements and components are contained in two SAP tables:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODSAP: containing enhancement name, type of exit and component&lt;/P&gt;&lt;P&gt;MODACT: containing project name and enhancements&lt;/P&gt;&lt;P&gt;Thus by writing a report program to retrieve data from these two tables, you can customize your search requirements. Code for one such sample program is attached in annexure A and the corresponding transaction code to execute this program is YSMD .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using this you can list all components that match a particular string like the program name or the function code as well as search for only one type of exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: SAP&amp;#146;s naming convention for user exits-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;· Program/Function exits : EXIT_AAAAAAAA_nnn where&lt;/P&gt;&lt;P&gt;AAAAAAAA stands for the program name which contains the exit and&lt;/P&gt;&lt;P&gt;nnn is a SAP assigned number starting from 001&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;· Menu exits : AAAAAAAA+XXX where&lt;/P&gt;&lt;P&gt;AAAAAAAA stands for the program name which contains the exit and&lt;/P&gt;&lt;P&gt;+XXX is the name of the function code contained in the menu item&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;· Screen Exits : AAAAAAAA_nnnn_BBBBBBBB_CCCCCCCC_mmmm where&lt;/P&gt;&lt;P&gt;AAAAAAAA : calling program name&lt;/P&gt;&lt;P&gt;nnnn : calling screen number&lt;/P&gt;&lt;P&gt;BBBBBBBB : area&lt;/P&gt;&lt;P&gt;CCCCCCCC : called program name&lt;/P&gt;&lt;P&gt;mmmm : called screen number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward If Helpfull,&lt;/P&gt;&lt;P&gt; Naresh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:16:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796222#M913071</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:16:22Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796223#M913072</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;User exits : &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Introduction &lt;/P&gt;&lt;P&gt;2. How to find user exits &lt;/P&gt;&lt;P&gt;3. Using Project management of SAP Enhancements  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Introduction: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The naming standard of function modules for functionmodule exits is:  &lt;/P&gt;&lt;P&gt;EXIT_&amp;lt;program name&amp;gt;&amp;lt;3 digit suffix&amp;gt;  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The call to a functionmodule exit is implemented as: &lt;/P&gt;&lt;P&gt;CALL CUSTOMER.-FUNCTION &lt;span class="lia-unicode-emoji" title=":red_heart:"&gt;❤️&lt;/span&gt; digit suffix&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The program for transaction VA01 Create salesorder is SAPMV45A &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you search for CALL CUSTOMER-FUNCTION i program &lt;/P&gt;&lt;P&gt;SAPMV45A you will find ( Among other user exits): &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL CUSTOMER-FUNCTION '003' &lt;/P&gt;&lt;P&gt;  exporting &lt;/P&gt;&lt;P&gt;    xvbak   = vbak &lt;/P&gt;&lt;P&gt;    xvbuk   = vbuk &lt;/P&gt;&lt;P&gt;    xkomk   = tkomk &lt;/P&gt;&lt;P&gt;  importing &lt;/P&gt;&lt;P&gt;    lvf_subrc = lvf_subrc &lt;/P&gt;&lt;P&gt;  tables &lt;/P&gt;&lt;P&gt;    xvbfa = xvbfa &lt;/P&gt;&lt;P&gt;    xvbap = xvbap &lt;/P&gt;&lt;P&gt;    xvbup = xvbup. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The exit calls function module EXIT_SAPMV45A_003 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. How to find user exits? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you know the Exit name, go to transaction CMOD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Choose menu Utillities-&amp;gt;SAP Enhancements. Enter the exit name and press enter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You will now come to a screen that shows the function module exits for the exit. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. Using Project management of SAP Enhancements, we want to create a project to enahance trasnaction VA01 . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Go to transaction CMOD &lt;/P&gt;&lt;P&gt;- Create a project called ZVA01 &lt;/P&gt;&lt;P&gt;- Choose the Enhancement assign radio button and press the Change button &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the first column enter V45A0002 Predefine sold-to party in sales document.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that an enhancement can only be used in 1 project. If the enhancement is already in use, and error message will be displayed &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Press Save &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now the function module is displayed. Double click on include ZXVVAU04 in the function module &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Insert the following code into the include: E_KUNNR = '2155'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Activate the include program. Go back to CMOD and activate the project.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Goto transaction VA01 and craete a salesorder.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that Sold-to-party now automatically is "2155"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:19:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796223#M913072</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:19:29Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796224#M913073</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following report will explain u how to get the userexits and badi's for  a particular transaction code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*
REPORT  YMS_USEREXITBADITEST                    .

TABLES : TSTC,
TADIR,
MODSAPT,
MODACT,
TRDIR,
TFDIR,
ENLFDIR,
SXS_ATTRT ,
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,
P_PGMNA LIKE TSTC-PGMNA .


DATA WA_TADIR TYPE TADIR.

START-OF-SELECTION.

  IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.

  ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
  ENDIF.

  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 IN ('SMOD', 'SXSD')
    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:/(105) SY-ULINE.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.

* SORTING THE INTERNAL TABLE
      SORT JTAB BY OBJECT.
      DATA : WF_TXT(60) TYPE C,
      WF_SMOD TYPE I ,
      WF_BADI TYPE I ,
      WF_OBJECT2(30) TYPE C.
      CLEAR : WF_SMOD, WF_BADI , WF_OBJECT2.

*GET THE TOTAL SMOD.

  LOOP AT JTAB INTO WA_TADIR.
    AT FIRST.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.

      WRITE:/1 SY-VLINE,
      2 'Enhancement/ Business Add-in',
      41 SY-VLINE ,
      42 'Description',
      105 SY-VLINE.
      WRITE:/(105) SY-ULINE.
    ENDAT.
    CLEAR WF_TXT.
    AT NEW OBJECT.
      IF WA_TADIR-OBJECT = 'SMOD'.
        WF_OBJECT2 = 'Enhancement' .
      ELSEIF WA_TADIR-OBJECT = 'SXSD'.
        WF_OBJECT2 = ' Business Add-in'.

      ENDIF.
      FORMAT COLOR COL_GROUP INTENSIFIED ON.

      WRITE:/1 SY-VLINE,

      2 WF_OBJECT2,
      105 SY-VLINE.
    ENDAT.

    CASE WA_TADIR-OBJECT.
      WHEN 'SMOD'.
        WF_SMOD = WF_SMOD + 1.
        SELECT SINGLE MODTEXT INTO WF_TXT
        FROM MODSAPT
        WHERE SPRSL = SY-LANGU
        AND NAME = WA_TADIR-OBJ_NAME.
        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

      WHEN 'SXSD'.


*  FOR BADIS
        WF_BADI = WF_BADI + 1 .
          SELECT SINGLE TEXT INTO WF_TXT
          FROM SXS_ATTRT
          WHERE SPRSL = SY-LANGU
          AND EXIT_NAME = WA_TADIR-OBJ_NAME.
          FORMAT COLOR COL_NORMAL INTENSIFIED ON.

      ENDCASE.


      WRITE:/1 SY-VLINE,
      2 WA_TADIR-OBJ_NAME HOTSPOT ON,
      41 SY-VLINE ,
      42 WF_TXT,
      105 SY-VLINE.
      AT END OF OBJECT.
        WRITE : /(105) SY-ULINE.
      ENDAT.


    ENDLOOP.

    WRITE:/(105) SY-ULINE.



    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , WF_SMOD.
    WRITE:/ 'No.of BADis:' , WF_BADI.

  ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
  ENDIF.
ELSE.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
  WRITE:/(105) 'Transaction does not exist'.
ENDIF.

AT LINE-SELECTION.

  DATA : WF_OBJECT TYPE TADIR-OBJECT.
  CLEAR WF_OBJECT.


  GET CURSOR FIELD FIELD1.
  CHECK FIELD1(8) EQ 'WA_TADIR'.
  READ TABLE JTAB WITH KEY OBJ_NAME = SY-LISEL+1(20).
  MOVE JTAB-OBJECT TO WF_OBJECT.

  CASE WF_OBJECT.
    WHEN 'SMOD'.
      SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).

      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    WHEN 'SXSD'.
      SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
      CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
  ENDCASE.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Sankar M&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:19:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796224#M913073</guid>
      <dc:creator>p291102</dc:creator>
      <dc:date>2008-05-15T09:19:43Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796225#M913074</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUSEREXIT                                                   *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Finding the user-exits of a SAP transaction code                    *
*&amp;amp;                                                                     *
*&amp;amp; Enter the transaction code in which you are looking for the         *
*&amp;amp; user-exit and it will list you the list of user-exits in the        *
*&amp;amp; transaction code. Also a drill down is possible which will help you *
*&amp;amp; to branch to SMOD.                                                  *
*&amp;amp;---------------------------------------------------------------------*

REPORT zuserexit NO STANDARD PAGE HEADING.

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.&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:19:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796225#M913074</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:19:52Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796226#M913075</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi check this prog..&lt;/P&gt;&lt;P&gt;execurte this prog -&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;give the tcode as -&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt; se38 &lt;/P&gt;&lt;P&gt;                                give program name--&lt;/P&gt;&lt;P&gt;it will show the user exits in the program..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report ZNEGI16 *&lt;/P&gt;&lt;P&gt;*&amp;amp; *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; *&lt;/P&gt;&lt;P&gt;*&amp;amp; *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZNEGI16 .&lt;/P&gt;&lt;P&gt;TABLES : TSTC,&lt;/P&gt;&lt;P&gt;TADIR,&lt;/P&gt;&lt;P&gt;MODSAPT,&lt;/P&gt;&lt;P&gt;MODACT,&lt;/P&gt;&lt;P&gt;TRDIR,&lt;/P&gt;&lt;P&gt;TFDIR,&lt;/P&gt;&lt;P&gt;ENLFDIR,&lt;/P&gt;&lt;P&gt;SXS_ATTRT ,&lt;/P&gt;&lt;P&gt;TSTCT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : FIELD1(30).&lt;/P&gt;&lt;P&gt;DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : P_TCODE LIKE TSTC-TCODE,&lt;/P&gt;&lt;P&gt;P_PGMNA LIKE TSTC-PGMNA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA wa_tadir type tadir.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT P_TCODE IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSEIF NOT P_PGMNA IS INITIAL.&lt;/P&gt;&lt;P&gt;TSTC-PGMNA = P_PGMNA.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT = 'PROG'&lt;/P&gt;&lt;P&gt;AND OBJ_NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE : TADIR-DEVCLASS TO V_DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TRDIR&lt;/P&gt;&lt;P&gt;WHERE NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;IF TRDIR-SUBC EQ 'F'.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TFDIR&lt;/P&gt;&lt;P&gt;WHERE PNAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM ENLFDIR&lt;/P&gt;&lt;P&gt;WHERE FUNCNAME = TFDIR-FUNCNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT = 'FUGR'&lt;/P&gt;&lt;P&gt;AND OBJ_NAME EQ ENLFDIR-AREA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE : TADIR-DEVCLASS TO V_DEVCLASS.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM TADIR INTO TABLE JTAB&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR'&lt;/P&gt;&lt;P&gt;AND OBJECT in ('SMOD', 'SXSD')&lt;/P&gt;&lt;P&gt;AND DEVCLASS = V_DEVCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSTCT&lt;/P&gt;&lt;P&gt;WHERE SPRSL EQ SY-LANGU&lt;/P&gt;&lt;P&gt;AND TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;WRITE:/(19) 'Transaction Code - ',&lt;/P&gt;&lt;P&gt;20(20) P_TCODE,&lt;/P&gt;&lt;P&gt;45(50) TSTCT-TTEXT.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;IF NOT JTAB[] IS INITIAL.&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sorting the internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;sort jtab by OBJECT.&lt;/P&gt;&lt;P&gt;data : wf_txt(60) type c,&lt;/P&gt;&lt;P&gt;wf_smod type i ,&lt;/P&gt;&lt;P&gt;wf_badi type i ,&lt;/P&gt;&lt;P&gt;wf_object2(30) type C.&lt;/P&gt;&lt;P&gt;clear : wf_smod, wf_badi , wf_object2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the total SMOD.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT JTAB into wa_tadir.&lt;/P&gt;&lt;P&gt;at first.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 'Enhancement/ Business Add-in',&lt;/P&gt;&lt;P&gt;41 SY-VLINE ,&lt;/P&gt;&lt;P&gt;42 'Description',&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;endat.&lt;/P&gt;&lt;P&gt;clear wf_txt.&lt;/P&gt;&lt;P&gt;at new object.&lt;/P&gt;&lt;P&gt;if wa_tadir-object = 'SMOD'.&lt;/P&gt;&lt;P&gt;wf_object2 = 'Enhancement' .&lt;/P&gt;&lt;P&gt;elseif wa_tadir-object = 'SXSD'.&lt;/P&gt;&lt;P&gt;wf_object2 = ' Business Add-in'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_GROUP INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 wf_object2,&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case wa_tadir-object.&lt;/P&gt;&lt;P&gt;when 'SMOD'.&lt;/P&gt;&lt;P&gt;wf_smod = wf_smod + 1.&lt;/P&gt;&lt;P&gt;SELECT SINGLE MODTEXT into wf_txt&lt;/P&gt;&lt;P&gt;FROM MODSAPT&lt;/P&gt;&lt;P&gt;WHERE SPRSL = SY-LANGU&lt;/P&gt;&lt;P&gt;AND NAME = wa_tadir-OBJ_NAME.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'SXSD'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For BADis&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;wf_badi = wf_badi + 1 .&lt;/P&gt;&lt;P&gt;select single TEXT into wf_txt&lt;/P&gt;&lt;P&gt;from SXS_ATTRT&lt;/P&gt;&lt;P&gt;where sprsl = sy-langu&lt;/P&gt;&lt;P&gt;and EXIT_NAME = wa_tadir-OBJ_NAME.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 wa_tadir-OBJ_NAME hotspot on,&lt;/P&gt;&lt;P&gt;41 SY-VLINE ,&lt;/P&gt;&lt;P&gt;42 wf_txt,&lt;/P&gt;&lt;P&gt;105 SY-VLINE.&lt;/P&gt;&lt;P&gt;AT END OF object.&lt;/P&gt;&lt;P&gt;write : /(105) sy-ULINE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/(105) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_TOTAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/ 'No.of Exits:' , wf_smod.&lt;/P&gt;&lt;P&gt;WRITE:/ 'No.of BADis:' , wf_badi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/(105) 'No userexits or BADis exist'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/(105) 'Transaction does not exist'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : wf_object type tadir-object.&lt;/P&gt;&lt;P&gt;clear wf_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET CURSOR FIELD FIELD1.&lt;/P&gt;&lt;P&gt;CHECK FIELD1(8) EQ 'WA_TADIR'.&lt;/P&gt;&lt;P&gt;read table jtab with key obj_name = sy-lisel+1(20).&lt;/P&gt;&lt;P&gt;move jtab-object to wf_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case wf_object.&lt;/P&gt;&lt;P&gt;when 'SMOD'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;when 'SXSD'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;venkat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:21:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796226#M913075</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:21:14Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796227#M913076</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Goto Tcode SMOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go fpr F4 help of enhancements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now select information system button.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Enter package name and say ENTER.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:24:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796227#M913076</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-15T09:24:07Z</dc:date>
    </item>
    <item>
      <title>Re: User exits</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796228#M913077</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In  &lt;STRONG&gt;Menu&lt;/STRONG&gt;       System -&amp;gt; Status in the Transaction code for which you want to find the exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;copy the program name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for eg: if the &lt;/P&gt;&lt;P&gt;Program (screen) name is    SAPMM07M   &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;copy other text leaving SAP   ie,  'MM07M'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then go to &lt;/P&gt;&lt;P&gt;Tcode SE16: give table name 'MODSAPVIEW'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Give the following values in the selection-option&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMBER                            &lt;STRONG&gt;M07M&lt;/STRONG&gt;             &lt;/P&gt;&lt;P&gt;SPRSL                             EN                for english description&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                 Execute (press F8)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you will get all exits in that program&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 May 2008 09:25:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exits/m-p/3796228#M913077</guid>
      <dc:creator>JoffyJohn</dc:creator>
      <dc:date>2008-05-15T09:25:32Z</dc:date>
    </item>
  </channel>
</rss>

