<?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 user exit in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846322#M666802</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi friends,&lt;/P&gt;&lt;P&gt; is there any standard programs to find  the user-exits of a SAP transaction code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Oct 2007 10:02:55 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-03T10:02:55Z</dc:date>
    <item>
      <title>user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846322#M666802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi friends,&lt;/P&gt;&lt;P&gt; is there any standard programs to find  the user-exits of a SAP transaction code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:02:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846322#M666802</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:02:55Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846323#M666803</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;Check the code below:&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;&lt;/P&gt;&lt;P&gt;*&amp;amp; Enter the transaction code that you want to search through in order&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; to find which Standard SAP User Exits exists.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;*&amp;amp; Tables&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : tstc, "SAP Transaction Codes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tadir, "Directory of Repository Objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modsapt, "SAP Enhancements - Short Texts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modact, "Modifications&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;trdir, "System table TRDIR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tfdir, "Function Module&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;enlfdir, "Additional Attributes for Function Modules&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tstct. "Transaction Code Texts&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;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;*&amp;amp; Variables&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;&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;DATA : field1(30).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : v_devclass LIKE tadir-devclass.&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;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;*&amp;amp; Selection Screen Parameters&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;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK a01.&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;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;*&amp;amp; Start of main 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;&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate Transaction Code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM tstc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WHERE tcode EQ p_tcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find Repository Objects for transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM tadir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHERE pgmid = 'R3TR'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AND object = 'PROG'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AND obj_name = 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;    MOVE : tadir-devclass TO v_devclass.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM trdir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WHERE name = 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;      IF trdir-subc EQ 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE * FROM tfdir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHERE pname = 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;        SELECT SINGLE * FROM enlfdir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHERE funcname = tfdir-funcname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE * FROM tadir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHERE pgmid = 'R3TR'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        AND object = 'FUGR'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        AND obj_name = enlfdir-area.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Find SAP Modifactions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT * FROM tadir&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    INTO TABLE jtab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHERE pgmid = 'R3TR'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AND object = 'SMOD'&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM tstct&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHERE sprsl EQ sy-langu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AND tcode EQ p_tcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/(19) 'Transaction Code - ',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    20(20) p_tcode,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    45(50) tstct-ttext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT jtab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;      2 'Exit Name',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      21 sy-vline ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      22 'Description',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      95 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/(95) 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;      LOOP AT jtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE * FROM modsapt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WHERE sprsl = sy-langu AND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        name = jtab-obj_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&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 jtab-obj_name HOTSPOT ON,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        21 sy-vline ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        22 modsapt-modtext,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        95 sy-vline.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE jtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/ 'No of Exits:' , sy-tfill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/(95) 'No User Exit exists'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/(95) 'Transaction Code Does Not Exist'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Take the user to SMOD for the Exit that was selected.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;  GET CURSOR FIELD field1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK field1(4) EQ 'JTAB'.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kannaiah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:04:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846323#M666803</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:04:52Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846324#M666804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Priya,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Run the below code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finding the user-exits of a SAP transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Enter the transaction code in which you are looking for the user-exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and it will list you the list of user-exits in the transaction code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Also a drill down is possible which will help you to branch to SMOD.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             &lt;A href="http://www.sap-img.com" target="test_blank"&gt;http://www.sap-img.com&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report zuserexit no standard page heading.&lt;/P&gt;&lt;P&gt;tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.&lt;/P&gt;&lt;P&gt;         tables : tstct.&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;parameters : p_tcode like tstc-tcode obligatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single * from tstc where tcode eq p_tcode.&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;   select single * from tadir 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;   move : tadir-devclass to v_devclass.&lt;/P&gt;&lt;P&gt;      if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;         select single * from trdir 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 where pname = tstc-pgmna.&lt;/P&gt;&lt;P&gt;            select single * from enlfdir where funcname =&lt;/P&gt;&lt;P&gt;            tfdir-funcname.&lt;/P&gt;&lt;P&gt;            select single * from tadir 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;       select * from tadir into table jtab&lt;/P&gt;&lt;P&gt;                     where pgmid = 'R3TR'&lt;/P&gt;&lt;P&gt;                       and object = 'SMOD'&lt;/P&gt;&lt;P&gt;                       and devclass = v_devclass.&lt;/P&gt;&lt;P&gt;        select single * from tstct where sprsl eq sy-langu and&lt;/P&gt;&lt;P&gt;                                         tcode eq p_tcode.&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:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           format color col_heading intensified on.&lt;/P&gt;&lt;P&gt;           write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;                  2 'Exit Name',&lt;/P&gt;&lt;P&gt;                 21 sy-vline ,&lt;/P&gt;&lt;P&gt;                 22 'Description',&lt;/P&gt;&lt;P&gt;                 95 sy-vline.&lt;/P&gt;&lt;P&gt;           write:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           loop at jtab.&lt;/P&gt;&lt;P&gt;              select single * from modsapt&lt;/P&gt;&lt;P&gt;                     where sprsl = sy-langu and&lt;/P&gt;&lt;P&gt;                            name = jtab-obj_name.&lt;/P&gt;&lt;P&gt;                   format color col_normal intensified off.&lt;/P&gt;&lt;P&gt;                   write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;                          2 jtab-obj_name hotspot on,&lt;/P&gt;&lt;P&gt;                         21 sy-vline ,&lt;/P&gt;&lt;P&gt;                         22 modsapt-modtext,&lt;/P&gt;&lt;P&gt;                         95 sy-vline.&lt;/P&gt;&lt;P&gt;           endloop.&lt;/P&gt;&lt;P&gt;           write:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           describe table jtab.&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:' , sy-tfill.&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:/(95) 'No User Exit exists'.&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:/(95) 'Transaction Code 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;   get cursor field field1.&lt;/P&gt;&lt;P&gt;   check field1(4) eq 'JTAB'.&lt;/P&gt;&lt;P&gt;   set parameter id 'MON' field sy-lisel+1(10).&lt;/P&gt;&lt;P&gt;   call transaction 'SMOD' and skip first   screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---End of Program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful,&lt;/P&gt;&lt;P&gt;Karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:05:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846324#M666804</guid>
      <dc:creator>former_member189629</dc:creator>
      <dc:date>2007-10-03T10:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846325#M666805</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;try this program.....it will list u all the enhancements even BADIs...&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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Report  ZPJA_PM002 (V2)                                            &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Text Elements:                                                     &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; P_DEVC Show user-exits from development class                      &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; P_LIMIT Limit submit program selection                             &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; P_FUNC Show function modules                                       &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; P_SUBM Show submit programs                                        &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; S01    Selection data (TCode takes precedence  over program name)  &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;report  zpja_pm002&lt;/P&gt;&lt;P&gt;  no standard page heading&lt;/P&gt;&lt;P&gt;  line-size 158.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*tables: enlfdir.     "Additional Attributes for Function Modules&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: tabix      like sy-tabix,&lt;/P&gt;&lt;P&gt;      w_linnum   type i,&lt;/P&gt;&lt;P&gt;      w_off      type i,&lt;/P&gt;&lt;P&gt;      w_index    like sy-tabix,&lt;/P&gt;&lt;P&gt;      w_include  like trdir-name,&lt;/P&gt;&lt;P&gt;      w_prog     like trdir-name,&lt;/P&gt;&lt;P&gt;      w_incl     like trdir-name,&lt;/P&gt;&lt;P&gt;      w_area     like rs38l-area,&lt;/P&gt;&lt;P&gt;      w_level,&lt;/P&gt;&lt;P&gt;      w_str(50)  type c,&lt;/P&gt;&lt;P&gt;      w_funcname like tfdir-funcname.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;constants: c_fmod(40) type c value 'Function modules selected: ',&lt;/P&gt;&lt;P&gt;           c_subm(40) type c value 'Submit programs selected: ',&lt;/P&gt;&lt;P&gt;           c_col1(12) type c value 'Enhanmt Type',&lt;/P&gt;&lt;P&gt;           c_col2(40) type c value 'Enhancement',&lt;/P&gt;&lt;P&gt;           c_col3(30) type c value 'Program/Include',&lt;/P&gt;&lt;P&gt;           c_col4(20) type c value 'Enhancement Name',&lt;/P&gt;&lt;P&gt;           c_col5(40) type c value 'Enhancement Description'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work Areas: ABAP Workbench&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_d010inc.&lt;/P&gt;&lt;P&gt;data: master type d010inc-master.&lt;/P&gt;&lt;P&gt;data: end of wa_d010inc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_tfdir.&lt;/P&gt;&lt;P&gt;data: funcname type tfdir-funcname,&lt;/P&gt;&lt;P&gt;      pname    type tfdir-pname,&lt;/P&gt;&lt;P&gt;      include  type tfdir-include.&lt;/P&gt;&lt;P&gt;data: end of wa_tfdir.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_tadir.&lt;/P&gt;&lt;P&gt;data: devclass type tadir-devclass.&lt;/P&gt;&lt;P&gt;data: end of wa_tadir.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_tstc.&lt;/P&gt;&lt;P&gt;data: pgmna type tstc-pgmna.&lt;/P&gt;&lt;P&gt;data: end of wa_tstc.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_tstcp.&lt;/P&gt;&lt;P&gt;data: param type tstcp-param.&lt;/P&gt;&lt;P&gt;data: end of wa_tstcp.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_enlfdir.&lt;/P&gt;&lt;P&gt;data: area type enlfdir-area.&lt;/P&gt;&lt;P&gt;data: end of wa_enlfdir.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work Areas: BADIs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_sxs_attr.&lt;/P&gt;&lt;P&gt;data: exit_name type sxs_attr-exit_name.&lt;/P&gt;&lt;P&gt;data: end of wa_sxs_attr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_sxs_attrt.&lt;/P&gt;&lt;P&gt;data: text type sxs_attrt-text.&lt;/P&gt;&lt;P&gt;data: end of wa_sxs_attrt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work Areas: Enhancements&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_modsap.&lt;/P&gt;&lt;P&gt;data: member type modsap-member.&lt;/P&gt;&lt;P&gt;data: end of wa_modsap.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_modsapa.&lt;/P&gt;&lt;P&gt;data: name type modsapa-name.&lt;/P&gt;&lt;P&gt;data: end of wa_modsapa.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_modsapt.&lt;/P&gt;&lt;P&gt;data: modtext type modsapt-modtext.&lt;/P&gt;&lt;P&gt;data: end of wa_modsapt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work Areas: Business Transaction Events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of wa_tbe01t.&lt;/P&gt;&lt;P&gt;data: text1 type tbe01t-text1.&lt;/P&gt;&lt;P&gt;data: end of wa_tbe01t.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;data: begin of wa_tps01t.&lt;/P&gt;&lt;P&gt;data: text1 type tps01t-text1.&lt;/P&gt;&lt;P&gt;data: end of wa_tps01t.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user-exits&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_userexit,&lt;/P&gt;&lt;P&gt;      type(12) type c,&lt;/P&gt;&lt;P&gt;      pname    like trdir-name,&lt;/P&gt;&lt;P&gt;      txt(300),&lt;/P&gt;&lt;P&gt;      level    type c,&lt;/P&gt;&lt;P&gt;      modname(30) type c,&lt;/P&gt;&lt;P&gt;      modtext(40) type c,&lt;/P&gt;&lt;P&gt;end of t_userexit.&lt;/P&gt;&lt;P&gt;data: i_userexit type standard table of t_userexit with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function module developmnet classes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_devclass,&lt;/P&gt;&lt;P&gt;      clas   like trdir-clas,&lt;/P&gt;&lt;P&gt;end of t_devclass.&lt;/P&gt;&lt;P&gt;data: i_devclass type standard table of t_devclass with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Submit programs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_submit,&lt;/P&gt;&lt;P&gt;      pname     like trdir-name,&lt;/P&gt;&lt;P&gt;      level,&lt;/P&gt;&lt;P&gt;      done,&lt;/P&gt;&lt;P&gt;end of t_submit.&lt;/P&gt;&lt;P&gt;data: i_submit type standard table of t_submit with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Source code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_sourcetab,                        "#EC * (SLIN lügt!)&lt;/P&gt;&lt;P&gt;        line(200),                                  "#EC * (SLIN lügt!)&lt;/P&gt;&lt;P&gt;      end of t_sourcetab.                           "#EC * (SLIN lügt!)&lt;/P&gt;&lt;P&gt;data: sourcetab type standard table of t_sourcetab with header line.&lt;/P&gt;&lt;P&gt;data c_overflow(30000) type c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description of an ABAP/4 source analysis token&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: i_stoken type standard table of stokex with header line.&lt;/P&gt;&lt;P&gt;data wa_stoken like i_stoken.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Description of an ABAP/4 source analysis statement&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: i_sstmnt type standard table of sstmnt with header line."#EC&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;keywords for searching ABAP code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_keywords,&lt;/P&gt;&lt;P&gt;      word(30),&lt;/P&gt;&lt;P&gt;end of t_keywords.&lt;/P&gt;&lt;P&gt;data: keywords type standard table of t_keywords with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;function modules within program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: begin of t_fmodule,&lt;/P&gt;&lt;P&gt;      name   like rs38l-name,&lt;/P&gt;&lt;P&gt;      pname  like trdir-name,&lt;/P&gt;&lt;P&gt;      pname2 like trdir-name,&lt;/P&gt;&lt;P&gt;      level,&lt;/P&gt;&lt;P&gt;      bapi,&lt;/P&gt;&lt;P&gt;      done,&lt;/P&gt;&lt;P&gt;end of t_fmodule.&lt;/P&gt;&lt;P&gt;data: i_fmodule type standard table of t_fmodule with header line.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Selection Options                                                  &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block selscr1 with frame title text-s01.&lt;/P&gt;&lt;P&gt;parameter: p_pname like trdir-name memory id rid,&lt;/P&gt;&lt;P&gt;           p_tcode like syst-tcode,&lt;/P&gt;&lt;P&gt;           p_limit(4) type n default 100,&lt;/P&gt;&lt;P&gt;           p_devc  like rihea-dy_ofn default ' ',&lt;/P&gt;&lt;P&gt;           p_func  like rihea-dy_ofn default ' ',&lt;/P&gt;&lt;P&gt;           p_subm  like rihea-dy_ofn default ' '.&lt;/P&gt;&lt;P&gt;selection-screen end of block selscr1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; START-OF-SELECTION                                                 &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if p_pname is initial and p_tcode is initial.&lt;/P&gt;&lt;P&gt;    message e008(hrfpm).  "Make entry on the selection screen&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ensure P_LIMIT is not zero.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_limit = 0.&lt;/P&gt;&lt;P&gt;    p_limit = 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  perform data_select.&lt;/P&gt;&lt;P&gt;  perform get_submit_data.&lt;/P&gt;&lt;P&gt;  perform get_fm_data.&lt;/P&gt;&lt;P&gt;  perform get_additional_data.&lt;/P&gt;&lt;P&gt;  perform data_display.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form DATA_SELECT                                                   &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form data_select.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data selection message to sap gui&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    destination 'SAPGUI'&lt;/P&gt;&lt;P&gt;    keeping logical unit of work&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      text                  = 'Get programs/includes'       "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      system_failure&lt;/P&gt;&lt;P&gt;      communication_failure&lt;/P&gt;&lt;P&gt;    .                                                       "#EC *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;determine search words&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  keywords-word = 'CALL'.&lt;/P&gt;&lt;P&gt;  append keywords.&lt;/P&gt;&lt;P&gt;  keywords-word = 'FORM'.&lt;/P&gt;&lt;P&gt;  append keywords.&lt;/P&gt;&lt;P&gt;  keywords-word = 'PERFORM'.&lt;/P&gt;&lt;P&gt;  append keywords.&lt;/P&gt;&lt;P&gt;  keywords-word = 'SUBMIT'.&lt;/P&gt;&lt;P&gt;  append keywords.&lt;/P&gt;&lt;P&gt;  keywords-word = 'INCLUDE'.&lt;/P&gt;&lt;P&gt;  append keywords.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if not p_tcode is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get program name from TCode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single pgmna from tstc into wa_tstc-pgmna&lt;/P&gt;&lt;P&gt;                 where tcode eq p_tcode.&lt;/P&gt;&lt;P&gt;    if not wa_tstc-pgmna is initial.&lt;/P&gt;&lt;P&gt;      p_pname = wa_tstc-pgmna.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TCode does not include program name, but does have refereve TCode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      select single param from tstcp into wa_tstcp-param&lt;/P&gt;&lt;P&gt;                   where tcode eq p_tcode.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        check wa_tstcp-param(1)   = '/'.&lt;/P&gt;&lt;P&gt;        check wa_tstcp-param+1(1) = '*'.&lt;/P&gt;&lt;P&gt;        if wa_tstcp-param ca ' '.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        w_off = sy-fdpos + 1.&lt;/P&gt;&lt;P&gt;        subtract 2 from sy-fdpos.&lt;/P&gt;&lt;P&gt;        if sy-fdpos gt 0.&lt;/P&gt;&lt;P&gt;          p_tcode = wa_tstcp-param+2(sy-fdpos).&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        select single pgmna from tstc into wa_tstc-pgmna&lt;/P&gt;&lt;P&gt;               where tcode eq p_tcode.&lt;/P&gt;&lt;P&gt;        p_pname = wa_tstc-pgmna.&lt;/P&gt;&lt;P&gt;        if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          message e110(/saptrx/asc) with 'No program found for: '&lt;/P&gt;&lt;P&gt;p_tcode."#EC NOTEXT&lt;/P&gt;&lt;P&gt;          stop.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        message e110(/saptrx/asc) with 'No program found for: ' p_tcode.&lt;/P&gt;&lt;P&gt;"#EC NOTEXT&lt;/P&gt;&lt;P&gt;        stop.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call customer-function aus Program coding&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  read report p_pname into sourcetab.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message e017(enhancement) with p_pname raising no_program."#EC *&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  scan abap-source sourcetab tokens     into i_stoken&lt;/P&gt;&lt;P&gt;                             statements into i_sstmnt&lt;/P&gt;&lt;P&gt;                             keywords   from keywords&lt;/P&gt;&lt;P&gt;                             overflow into c_overflow&lt;/P&gt;&lt;P&gt;                             with includes.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             WITH ANALYSIS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if sy-subrc &amp;gt; 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner&lt;/P&gt;&lt;P&gt;    message e130(enhancement) raising syntax_error.         "#EC *&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check I_STOKEN for entries&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear w_linnum.&lt;/P&gt;&lt;P&gt;  describe table i_stoken lines w_linnum.&lt;/P&gt;&lt;P&gt;  if w_linnum gt 0.&lt;/P&gt;&lt;P&gt;    w_level = '0'.&lt;/P&gt;&lt;P&gt;    w_prog = ''.&lt;/P&gt;&lt;P&gt;    w_incl = ''.&lt;/P&gt;&lt;P&gt;    perform data_search tables i_stoken using w_level w_prog w_incl.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                        "DATA_SELECT&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form GET_FM_DATA                                                   &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form get_fm_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data selection message to sap gui&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    destination 'SAPGUI'&lt;/P&gt;&lt;P&gt;    keeping logical unit of work&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      text                  = 'Get function module data'    "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      system_failure&lt;/P&gt;&lt;P&gt;      communication_failure&lt;/P&gt;&lt;P&gt;    .                                                       "#EC *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function module data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort i_fmodule by name.&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from i_fmodule comparing name.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at i_fmodule where done  ne 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear:   i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .&lt;/P&gt;&lt;P&gt;    refresh: i_stoken, i_sstmnt, sourcetab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear wa_tfdir.&lt;/P&gt;&lt;P&gt;    select single funcname pname include from tfdir into wa_tfdir&lt;/P&gt;&lt;P&gt;                            where funcname = i_fmodule-name.&lt;/P&gt;&lt;P&gt;    check sy-subrc = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    call function 'FUNCTION_INCLUDE_SPLIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        program = wa_tfdir-pname&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        group   = w_area.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    concatenate 'L' w_area 'U' wa_tfdir-include into w_include.&lt;/P&gt;&lt;P&gt;    i_fmodule-pname  = w_include.&lt;/P&gt;&lt;P&gt;    i_fmodule-pname2 = wa_tfdir-pname.&lt;/P&gt;&lt;P&gt;    modify i_fmodule.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    read report i_fmodule-pname into sourcetab.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      scan abap-source sourcetab tokens     into i_stoken&lt;/P&gt;&lt;P&gt;                                 statements into i_sstmnt&lt;/P&gt;&lt;P&gt;                                 keywords   from keywords&lt;/P&gt;&lt;P&gt;                                 with includes.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        message e130(enhancement) raising syntax_error.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check i_stoken for entries&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear w_linnum.&lt;/P&gt;&lt;P&gt;      describe table i_stoken lines w_linnum.&lt;/P&gt;&lt;P&gt;      if w_linnum gt 0.&lt;/P&gt;&lt;P&gt;        w_level = '1'.&lt;/P&gt;&lt;P&gt;        w_prog  = i_fmodule-pname2.&lt;/P&gt;&lt;P&gt;        w_incl =  i_fmodule-pname.&lt;/P&gt;&lt;P&gt;        perform data_search tables i_stoken using w_level w_prog w_incl.&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;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  if p_devc = 'X'.&lt;/P&gt;&lt;P&gt;    loop at i_fmodule.&lt;/P&gt;&lt;P&gt;      clear: wa_tadir, wa_enlfdir.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      select single area from enlfdir into wa_enlfdir-area&lt;/P&gt;&lt;P&gt;                            where funcname = i_fmodule-name.&lt;/P&gt;&lt;P&gt;      check not wa_enlfdir-area is initial.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      select single devclass into wa_tadir-devclass&lt;/P&gt;&lt;P&gt;                      from tadir where pgmid    = 'R3TR'&lt;/P&gt;&lt;P&gt;                                   and object   = 'FUGR'&lt;/P&gt;&lt;P&gt;                                   and obj_name = wa_enlfdir-area.&lt;/P&gt;&lt;P&gt;      check not wa_tadir-devclass is initial.&lt;/P&gt;&lt;P&gt;      move wa_tadir-devclass to i_devclass-clas.&lt;/P&gt;&lt;P&gt;      append i_devclass.&lt;/P&gt;&lt;P&gt;      i_fmodule-done = 'X'.&lt;/P&gt;&lt;P&gt;      modify i_fmodule.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    sort i_devclass.&lt;/P&gt;&lt;P&gt;    delete adjacent duplicates from i_devclass.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                        "GET_FM_DATA&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form GET_SUBMIT_DATA                                               &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form get_submit_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data selection message to sap gui&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    destination 'SAPGUI'&lt;/P&gt;&lt;P&gt;    keeping logical unit of work&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      text                  = 'Get submit data'             "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      system_failure&lt;/P&gt;&lt;P&gt;      communication_failure&lt;/P&gt;&lt;P&gt;    .                                                       "#EC *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  sort i_submit.&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from i_submit comparing pname.&lt;/P&gt;&lt;P&gt;  w_level = '0'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at i_submit where done ne 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear:   i_stoken, i_sstmnt, sourcetab.&lt;/P&gt;&lt;P&gt;    refresh: i_stoken, i_sstmnt, sourcetab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    read report i_submit-pname into sourcetab.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      scan abap-source sourcetab tokens     into i_stoken&lt;/P&gt;&lt;P&gt;                                 statements into i_sstmnt&lt;/P&gt;&lt;P&gt;                                 keywords   from keywords&lt;/P&gt;&lt;P&gt;                                 with includes.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       message e130(enhancement) raising syntax_error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        continue.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;check i_stoken for entries&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear w_linnum.&lt;/P&gt;&lt;P&gt;      describe table i_stoken lines w_linnum.&lt;/P&gt;&lt;P&gt;      if w_linnum gt 0.&lt;/P&gt;&lt;P&gt;        w_prog  = i_submit-pname.&lt;/P&gt;&lt;P&gt;        w_incl = ''.&lt;/P&gt;&lt;P&gt;        perform data_search tables i_stoken using w_level w_prog w_incl.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;restrict number of submit program selected for processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    describe table i_submit lines w_linnum.&lt;/P&gt;&lt;P&gt;    if w_linnum ge p_limit.&lt;/P&gt;&lt;P&gt;      w_level = '1'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    i_submit-done = 'X'.&lt;/P&gt;&lt;P&gt;    modify i_submit.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                       "GET_SUBMIT_DATA&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form DATA_SEARCH                                                   &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form data_search tables p_stoken structure stoken&lt;/P&gt;&lt;P&gt;                        using p_level p_prog p_incl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at p_stoken.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    clear i_userexit.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    tabix = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;    i_userexit-level = p_level.&lt;/P&gt;&lt;P&gt;    if i_userexit-level = '0'.&lt;/P&gt;&lt;P&gt;      if p_incl is initial.&lt;/P&gt;&lt;P&gt;        i_userexit-pname = p_pname.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        concatenate  p_pname '/' p_incl into i_userexit-pname.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      if p_incl is initial.&lt;/P&gt;&lt;P&gt;        i_userexit-pname = p_prog.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        concatenate  p_prog '/' p_incl into i_userexit-pname.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str eq 'INCLUDE'.&lt;/P&gt;&lt;P&gt;      check p_level eq '0'.    " do not perform for function modules&lt;/P&gt;&lt;P&gt;*(2nd pass)&lt;/P&gt;&lt;P&gt;      w_index = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      read table p_stoken index w_index into wa_stoken.&lt;/P&gt;&lt;P&gt;      check not wa_stoken-str cs 'STRUCTURE'.&lt;/P&gt;&lt;P&gt;      check not wa_stoken-str cs 'SYMBOL'.&lt;/P&gt;&lt;P&gt;      read table i_submit with key pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        i_submit-pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;        i_submit-level = p_level.&lt;/P&gt;&lt;P&gt;        append i_submit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Enhancements&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str eq 'CUSTOMER-FUNCTION'.&lt;/P&gt;&lt;P&gt;      clear w_funcname.&lt;/P&gt;&lt;P&gt;      read table p_stoken index tabix.&lt;/P&gt;&lt;P&gt;      translate p_stoken-str using ''' '.&lt;/P&gt;&lt;P&gt;      condense p_stoken-str.&lt;/P&gt;&lt;P&gt;      if p_prog is initial.&lt;/P&gt;&lt;P&gt;        concatenate 'EXIT' p_pname p_stoken-str into w_funcname&lt;/P&gt;&lt;P&gt;                     separated by '_'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        concatenate 'EXIT' p_prog p_stoken-str into w_funcname&lt;/P&gt;&lt;P&gt;               separated by '_'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      select single member from modsap into wa_modsap-member&lt;/P&gt;&lt;P&gt;            where member = w_funcname.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.   " check for valid enhancement&lt;/P&gt;&lt;P&gt;        i_userexit-type = 'Enhancement'.&lt;/P&gt;&lt;P&gt;        i_userexit-txt  = w_funcname.&lt;/P&gt;&lt;P&gt;        append i_userexit.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        clear wa_d010inc.&lt;/P&gt;&lt;P&gt;        select single master into wa_d010inc-master&lt;/P&gt;&lt;P&gt;              from d010inc&lt;/P&gt;&lt;P&gt;                 where include = p_prog.&lt;/P&gt;&lt;P&gt;        concatenate 'EXIT' wa_d010inc-master p_stoken-str into&lt;/P&gt;&lt;P&gt;w_funcname&lt;/P&gt;&lt;P&gt;               separated by '_'.&lt;/P&gt;&lt;P&gt;        i_userexit-type = 'Enhancement'.&lt;/P&gt;&lt;P&gt;        i_userexit-txt  = w_funcname.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BADIs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'cl_exithandler='.&lt;/P&gt;&lt;P&gt;      w_index = sy-tabix + 4.&lt;/P&gt;&lt;P&gt;      read table p_stoken index w_index into wa_stoken.&lt;/P&gt;&lt;P&gt;      i_userexit-txt = wa_stoken-str.&lt;/P&gt;&lt;P&gt;      replace all occurrences of '''' in i_userexit-txt with space.&lt;/P&gt;&lt;P&gt;      i_userexit-type = 'BADI'.&lt;/P&gt;&lt;P&gt;      append i_userexit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Business transaction events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'OPEN_FI_PERFORM'.&lt;/P&gt;&lt;P&gt;      i_userexit-type = 'BusTrEvent'.&lt;/P&gt;&lt;P&gt;      i_userexit-txt = p_stoken-str.&lt;/P&gt;&lt;P&gt;      replace all occurrences of '''' in i_userexit-txt with space.&lt;/P&gt;&lt;P&gt;      i_userexit-modname =  i_userexit-txt+16(8).&lt;/P&gt;&lt;P&gt;      case i_userexit-txt+25(1).&lt;/P&gt;&lt;P&gt;        when 'E'.&lt;/P&gt;&lt;P&gt;          clear wa_tbe01t.&lt;/P&gt;&lt;P&gt;          select single text1 into wa_tbe01t-text1 from tbe01t&lt;/P&gt;&lt;P&gt;                           where event = i_userexit-txt+16(8)&lt;/P&gt;&lt;P&gt;                             and spras = sy-langu.&lt;/P&gt;&lt;P&gt;          if wa_tbe01t-text1 is initial.&lt;/P&gt;&lt;P&gt;            i_userexit-modtext = ''.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            i_userexit-modtext = wa_tbe01t-text1.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;          i_userexit-modname+8 = '/P&amp;amp;S'.                    "#EC NOTEXT&lt;/P&gt;&lt;P&gt;        when 'P'.&lt;/P&gt;&lt;P&gt;          clear wa_tps01t.&lt;/P&gt;&lt;P&gt;          select single text1 into wa_tps01t-text1 from tps01t&lt;/P&gt;&lt;P&gt;                           where procs = i_userexit-txt+16(8)&lt;/P&gt;&lt;P&gt;                             and spras = sy-langu.&lt;/P&gt;&lt;P&gt;          i_userexit-modtext = wa_tps01t-text1.&lt;/P&gt;&lt;P&gt;          i_userexit-modname+8 = '/Process'.&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      append i_userexit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program exits&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'USEREXIT_'.&lt;/P&gt;&lt;P&gt;      i_userexit-type = 'Program Exit'.&lt;/P&gt;&lt;P&gt;      i_userexit-txt = p_stoken-str.&lt;/P&gt;&lt;P&gt;      replace all occurrences of '''' in i_userexit-txt with space.&lt;/P&gt;&lt;P&gt;      append i_userexit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Submit programs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'SUBMIT'.&lt;/P&gt;&lt;P&gt;      check p_level eq '0'.    " do not perform for function modules&lt;/P&gt;&lt;P&gt;*(2nd pass)&lt;/P&gt;&lt;P&gt;      check not p_stoken-str cs '_'.   " ensure not SUBMIT_XXX&lt;/P&gt;&lt;P&gt;      w_index = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      read table p_stoken index w_index into wa_stoken.&lt;/P&gt;&lt;P&gt;      check not wa_stoken-str cs '_'.   " ensure not SUBMIT_XXX&lt;/P&gt;&lt;P&gt;      replace all occurrences of '''' in wa_stoken-str with space.&lt;/P&gt;&lt;P&gt;      read table i_submit with key pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        i_submit-pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;        i_submit-level = p_level.&lt;/P&gt;&lt;P&gt;        append i_submit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Perform routines (which reference external programs)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'PERFORM'.&lt;/P&gt;&lt;P&gt;      check p_level eq '0'.    " do not perform for function modules&lt;/P&gt;&lt;P&gt;*(2nd pass)&lt;/P&gt;&lt;P&gt;      w_index = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      read table p_stoken index w_index into wa_stoken.&lt;/P&gt;&lt;P&gt;      if not wa_stoken-ovfl is initial.&lt;/P&gt;&lt;P&gt;        w_off = wa_stoken-off1 + 10.&lt;/P&gt;&lt;P&gt;        w_str = c_overflow+w_off(30).&lt;/P&gt;&lt;P&gt;        find ')' in w_str match offset w_off.&lt;/P&gt;&lt;P&gt;        w_off = w_off + 1.&lt;/P&gt;&lt;P&gt;        wa_stoken-str = w_str(w_off).&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      check wa_stoken-str cs '('.&lt;/P&gt;&lt;P&gt;      w_off = 0.&lt;/P&gt;&lt;P&gt;      while sy-subrc  = 0.&lt;/P&gt;&lt;P&gt;        if wa_stoken-str+w_off(1) eq '('.&lt;/P&gt;&lt;P&gt;          replace section offset w_off length 1 of wa_stoken-str with ''&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;          replace all occurrences of ')' in wa_stoken-str with space.&lt;/P&gt;&lt;P&gt;          read table i_submit with key pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;          if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;            i_submit-pname = wa_stoken-str.&lt;/P&gt;&lt;P&gt;            append i_submit.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;          exit.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          replace section offset w_off length 1 of wa_stoken-str with ''&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;          shift wa_stoken-str left deleting leading space.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endwhile.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function modules&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_stoken-str cs 'FUNCTION'.&lt;/P&gt;&lt;P&gt;      clear i_fmodule.&lt;/P&gt;&lt;P&gt;      check p_level eq '0'.    " do not perform for function modules&lt;/P&gt;&lt;P&gt;*(2nd pass)&lt;/P&gt;&lt;P&gt;      w_index = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      read table p_stoken index w_index into wa_stoken.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     if wa_stoken-str cs 'WF_'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if wa_stoken-str cs 'IF_'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       break-point.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      if wa_stoken-str cs 'BAPI'.&lt;/P&gt;&lt;P&gt;        i_fmodule-bapi = 'X'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      replace first occurrence of '''' in wa_stoken-str with space.&lt;/P&gt;&lt;P&gt;      replace first occurrence of '''' in wa_stoken-str with space.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 4.   " didn't find 2nd quote (ie name truncated)&lt;/P&gt;&lt;P&gt;        clear wa_tfdir.&lt;/P&gt;&lt;P&gt;        concatenate wa_stoken-str '%' into wa_stoken-str.&lt;/P&gt;&lt;P&gt;        select single funcname into wa_tfdir-funcname from tfdir&lt;/P&gt;&lt;P&gt;                     where funcname like wa_stoken-str.&lt;/P&gt;&lt;P&gt;        if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          i_fmodule-name = wa_tfdir-funcname.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          continue.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        i_fmodule-name = wa_stoken-str.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      i_fmodule-level = p_level.&lt;/P&gt;&lt;P&gt;      append i_fmodule.&lt;/P&gt;&lt;P&gt;    endif.&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;endform.                        "DATA_SEARCH&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form GET_ADDITIONAL_DATA                                           &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form get_additional_data.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data selection message to sap gui&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    destination 'SAPGUI'&lt;/P&gt;&lt;P&gt;    keeping logical unit of work&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      text                  = 'Get additional data'         "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      system_failure&lt;/P&gt;&lt;P&gt;      communication_failure&lt;/P&gt;&lt;P&gt;    .                                                       "#EC *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  loop at i_userexit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Enhancement data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if  i_userexit-type cs 'Enh'.&lt;/P&gt;&lt;P&gt;      clear: wa_modsapa.&lt;/P&gt;&lt;P&gt;      select single name into wa_modsapa-name from modsap&lt;/P&gt;&lt;P&gt;                        where member = i_userexit-txt.&lt;/P&gt;&lt;P&gt;      check sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      i_userexit-modname = wa_modsapa-name.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      clear wa_modsapt.&lt;/P&gt;&lt;P&gt;      select single modtext into wa_modsapt-modtext from modsapt&lt;/P&gt;&lt;P&gt;                        where name = wa_modsapa-name&lt;/P&gt;&lt;P&gt;                                     and sprsl = sy-langu.&lt;/P&gt;&lt;P&gt;      i_userexit-modtext = wa_modsapt-modtext.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BADI data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if  i_userexit-type eq 'BADI'.&lt;/P&gt;&lt;P&gt;      clear wa_sxs_attr.&lt;/P&gt;&lt;P&gt;      select single exit_name into wa_sxs_attr-exit_name from sxs_attr&lt;/P&gt;&lt;P&gt;                                    where exit_name = i_userexit-txt.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_userexit-modname = i_userexit-txt.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        i_userexit-modname = 'Dynamic call'.                "#EC NOTEXT&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      clear wa_sxs_attrt.&lt;/P&gt;&lt;P&gt;      select single text into wa_sxs_attrt-text from sxs_attrt&lt;/P&gt;&lt;P&gt;                                     where exit_name =&lt;/P&gt;&lt;P&gt;wa_sxs_attr-exit_name&lt;/P&gt;&lt;P&gt;                                       and sprsl = sy-langu.&lt;/P&gt;&lt;P&gt;      i_userexit-modtext = wa_sxs_attrt-text.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    modify i_userexit.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get enhancements via program package&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear wa_tadir.&lt;/P&gt;&lt;P&gt;  select single devclass into wa_tadir-devclass 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 = p_pname.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    clear: wa_modsapa, wa_modsapt.&lt;/P&gt;&lt;P&gt;    select name from modsapa into wa_modsapa-name&lt;/P&gt;&lt;P&gt;                          where devclass = wa_tadir-devclass.&lt;/P&gt;&lt;P&gt;      select single modtext from modsapt into wa_modsapt-modtext&lt;/P&gt;&lt;P&gt;                          where name = wa_modsapa-name&lt;/P&gt;&lt;P&gt;                            and sprsl = sy-langu.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      read table i_userexit with key modname = wa_modsapa-name.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        i_userexit-modtext = wa_modsapt-modtext.&lt;/P&gt;&lt;P&gt;        i_userexit-type = 'Enhancement'.                    "#EC NOTEXT&lt;/P&gt;&lt;P&gt;        i_userexit-modname  = wa_modsapa-name.&lt;/P&gt;&lt;P&gt;        i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT&lt;/P&gt;&lt;P&gt;        i_userexit-pname = 'Unknown'.                       "#EC NOTEXT&lt;/P&gt;&lt;P&gt;        append i_userexit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                        "GET_ADDITIONAL_DATA&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp; Form DATA_DISPLAY                                                  &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;                                                                    &amp;amp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&amp;amp;*&lt;/P&gt;&lt;P&gt;form data_display.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data selection message to sap gui&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    destination 'SAPGUI'&lt;/P&gt;&lt;P&gt;    keeping logical unit of work&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      text                  = 'Prepare screen for display'  "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      system_failure&lt;/P&gt;&lt;P&gt;      communication_failure&lt;/P&gt;&lt;P&gt;    .                                                       "#EC *&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  sort i_userexit by type txt modname.&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from i_userexit comparing txt modname.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;format headings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  write: 'Enhancements from main program'.                  "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  write: /.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt;  format color col_heading.&lt;/P&gt;&lt;P&gt;  write: /    sy-vline,&lt;/P&gt;&lt;P&gt;         (12) c_col1,                    "Enhanmt Type&lt;/P&gt;&lt;P&gt;              sy-vline,&lt;/P&gt;&lt;P&gt;         (40) c_col2,                    "Enhancement&lt;/P&gt;&lt;P&gt;              sy-vline,&lt;/P&gt;&lt;P&gt;         (30) c_col3,                    "Program/Include&lt;/P&gt;&lt;P&gt;              sy-vline,&lt;/P&gt;&lt;P&gt;         (20) c_col4,                    "Enhancement name&lt;/P&gt;&lt;P&gt;              sy-vline,&lt;/P&gt;&lt;P&gt;         (40) c_col5,                    "Enhancement description&lt;/P&gt;&lt;P&gt;              sy-vline.&lt;/P&gt;&lt;P&gt;  format reset.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;format lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  loop at i_userexit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set line colour&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    case i_userexit-type.&lt;/P&gt;&lt;P&gt;      when 'Enhancement'.&lt;/P&gt;&lt;P&gt;        format color 3 intensified off.&lt;/P&gt;&lt;P&gt;      when 'BADI'.&lt;/P&gt;&lt;P&gt;        format color 4 intensified off.&lt;/P&gt;&lt;P&gt;      when 'BusTrEvent'.&lt;/P&gt;&lt;P&gt;        format color 5 intensified off.&lt;/P&gt;&lt;P&gt;      when 'Program Exit'.&lt;/P&gt;&lt;P&gt;        format color 6 intensified off.&lt;/P&gt;&lt;P&gt;      when others.&lt;/P&gt;&lt;P&gt;        format reset.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;    write: / sy-vline,&lt;/P&gt;&lt;P&gt;             i_userexit-type,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             i_userexit-txt(40),&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             i_userexit-pname(30),&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             i_userexit-modname(20),&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             i_userexit-modtext(40),&lt;/P&gt;&lt;P&gt;             sy-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  format reset.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user-exits from development class of function modules&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_devc = 'X'.&lt;/P&gt;&lt;P&gt;    write: /.&lt;/P&gt;&lt;P&gt;    write: / 'User-exits from function module development class'."#EC&lt;/P&gt;&lt;P&gt;*NOTEXT&lt;/P&gt;&lt;P&gt;    write: 157''.&lt;/P&gt;&lt;P&gt;    uline (90).&lt;/P&gt;&lt;P&gt;    write: 157''.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    loop at i_devclass.&lt;/P&gt;&lt;P&gt;      clear wa_modsapa.&lt;/P&gt;&lt;P&gt;      select name from modsapa into wa_modsapa&lt;/P&gt;&lt;P&gt;                   where devclass = i_devclass-clas.&lt;/P&gt;&lt;P&gt;     select single name modtext into corresponding fields of wa_modsapt&lt;/P&gt;&lt;P&gt;                                   from modsapt&lt;/P&gt;&lt;P&gt;                                     where name  = wa_modsapa-name&lt;/P&gt;&lt;P&gt;                                       and sprsl = sy-langu.&lt;/P&gt;&lt;P&gt;        format color 3 intensified off.&lt;/P&gt;&lt;P&gt;        write: / sy-vline,&lt;/P&gt;&lt;P&gt;                 (12) 'Enhancement',&lt;/P&gt;&lt;P&gt;                 sy-vline,&lt;/P&gt;&lt;P&gt;                wa_modsapa-name,&lt;/P&gt;&lt;P&gt;                sy-vline,&lt;/P&gt;&lt;P&gt;                wa_modsapt-modtext,&lt;/P&gt;&lt;P&gt;                sy-vline.&lt;/P&gt;&lt;P&gt;      endselect.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    uline (90).&lt;/P&gt;&lt;P&gt;    format reset.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  describe table i_fmodule lines w_linnum.&lt;/P&gt;&lt;P&gt;  write: / c_fmod , at 35 w_linnum.                         "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  write: 157''.&lt;/P&gt;&lt;P&gt;  if p_func = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display fuction modules used in program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    uline (38).&lt;/P&gt;&lt;P&gt;    write: 157''.&lt;/P&gt;&lt;P&gt;    loop at i_fmodule.&lt;/P&gt;&lt;P&gt;      write: sy-vline,&lt;/P&gt;&lt;P&gt;             i_fmodule-name,&lt;/P&gt;&lt;P&gt;             sy-vline,&lt;/P&gt;&lt;P&gt;             i_fmodule-bapi,&lt;/P&gt;&lt;P&gt;             sy-vline.&lt;/P&gt;&lt;P&gt;      write: 157''.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    uline (38).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  describe table i_submit lines w_linnum.&lt;/P&gt;&lt;P&gt;  write: / c_subm , at 35 w_linnum.                         "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  write: 157''.&lt;/P&gt;&lt;P&gt;  if p_subm = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display submit programs used in program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    uline (44).&lt;/P&gt;&lt;P&gt;    write: 157''.&lt;/P&gt;&lt;P&gt;    loop at i_submit.&lt;/P&gt;&lt;P&gt;      write: sy-vline,&lt;/P&gt;&lt;P&gt;             i_submit-pname,&lt;/P&gt;&lt;P&gt;             sy-vline.&lt;/P&gt;&lt;P&gt;      write: 157''.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    uline (44).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;issue message with number of user-exits displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  describe table i_userexit lines w_linnum.&lt;/P&gt;&lt;P&gt;  message s697(56) with w_linnum.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;endform.                        "DATA_DISPLAY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;vasu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:05:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846325#M666805</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:05:43Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846326#M666806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;There is no standard code. But TSTC is the table for Transaction code and MODSAPT is for exits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can have custom prog.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.erpgenie.com/sap/abap/code/abap26.htm" target="test_blank"&gt;http://www.erpgenie.com/sap/abap/code/abap26.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if useful!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:05:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846326#M666806</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:05:49Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846327#M666807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;  there is no std program to find userexits&lt;/P&gt;&lt;P&gt; but u can follow the procedure&lt;/P&gt;&lt;P&gt;  first find the program of transaction code and then find devlopment class of that program then &lt;/P&gt;&lt;P&gt;goto se84 in that goto enhancements-&amp;gt;customerexits-&amp;gt;enchancements &lt;/P&gt;&lt;P&gt;in that give devlopment class and execute it gives all exits of it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;sandhya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:08:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846327#M666807</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:08:43Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846328#M666808</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am giving you a report which is use for find User exit in TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finding the user-exits of a SAP transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Enter the transaction code in which you are looking for the user-exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and it will list you the list of user-exits in the transaction code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Also a drill down is possible which will help you to branch to SMOD.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             &lt;A href="http://www.sap-img.com" target="test_blank"&gt;http://www.sap-img.com&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report zuserexit no standard page heading.&lt;/P&gt;&lt;P&gt;tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.&lt;/P&gt;&lt;P&gt;         tables : tstct.&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;parameters : p_tcode like tstc-tcode obligatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single * from tstc where tcode eq p_tcode.&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;   select single * from tadir 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;   move : tadir-devclass to v_devclass.&lt;/P&gt;&lt;P&gt;      if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;         select single * from trdir 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 where pname = tstc-pgmna.&lt;/P&gt;&lt;P&gt;            select single * from enlfdir where funcname =&lt;/P&gt;&lt;P&gt;            tfdir-funcname.&lt;/P&gt;&lt;P&gt;            select single * from tadir 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;       select * from tadir into table jtab&lt;/P&gt;&lt;P&gt;                     where pgmid = 'R3TR'&lt;/P&gt;&lt;P&gt;                       and object = 'SMOD'&lt;/P&gt;&lt;P&gt;                       and devclass = v_devclass.&lt;/P&gt;&lt;P&gt;        select single * from tstct where sprsl eq sy-langu and&lt;/P&gt;&lt;P&gt;                                         tcode eq p_tcode.&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:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           format color col_heading intensified on.&lt;/P&gt;&lt;P&gt;           write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;                  2 'Exit Name',&lt;/P&gt;&lt;P&gt;                 21 sy-vline ,&lt;/P&gt;&lt;P&gt;                 22 'Description',&lt;/P&gt;&lt;P&gt;                 95 sy-vline.&lt;/P&gt;&lt;P&gt;           write:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           loop at jtab.&lt;/P&gt;&lt;P&gt;              select single * from modsapt&lt;/P&gt;&lt;P&gt;                     where sprsl = sy-langu and&lt;/P&gt;&lt;P&gt;                            name = jtab-obj_name.&lt;/P&gt;&lt;P&gt;                   format color col_normal intensified off.&lt;/P&gt;&lt;P&gt;                   write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;                          2 jtab-obj_name hotspot on,&lt;/P&gt;&lt;P&gt;                         21 sy-vline ,&lt;/P&gt;&lt;P&gt;                         22 modsapt-modtext,&lt;/P&gt;&lt;P&gt;                         95 sy-vline.&lt;/P&gt;&lt;P&gt;           endloop.&lt;/P&gt;&lt;P&gt;           write:/(95) sy-uline.&lt;/P&gt;&lt;P&gt;           describe table jtab.&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:' , sy-tfill.&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:/(95) 'No User Exit exists'.&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:/(95) 'Transaction Code 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;   get cursor field field1.&lt;/P&gt;&lt;P&gt;   check field1(4) eq 'JTAB'.&lt;/P&gt;&lt;P&gt;   set parameter id 'MON' field sy-lisel+1(10).&lt;/P&gt;&lt;P&gt;   call transaction 'SMOD' and skip first   screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---End of Program&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:11:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846328#M666808</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:11:54Z</dc:date>
    </item>
    <item>
      <title>Re: user exit</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846329#M666809</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;usethis program and find the possible userexits for ur T-code and see which usewxit works for ur req&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finding the user-exits of a SAP transaction code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Enter the transaction code in which you are looking for the user-exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and it will list you the list of user-exits in the transaction code.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Also a drill down is possible which will help you to branch to 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;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TABLES DECLARATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;TABLES : TSTC, "SAP Transaction Codes.&lt;/P&gt;&lt;P&gt;TADIR, "Directory of Repository Objects.&lt;/P&gt;&lt;P&gt;MODSAPT, "SAP Enhancements - Short Texts.&lt;/P&gt;&lt;P&gt;MODACT, "Modifications.&lt;/P&gt;&lt;P&gt;TRDIR, "System table TRDIR.&lt;/P&gt;&lt;P&gt;TFDIR, "Function Module.&lt;/P&gt;&lt;P&gt;ENLFDIR, "Additional Attributes for Function Modules&lt;/P&gt;&lt;P&gt;TSTCT. "Transaction Code Texts&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL TABLE DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;DATA : ITAB LIKE TADIR OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;DATA : V_FIELD1(30).&lt;/P&gt;&lt;P&gt;DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INPUT SCREEN DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;PARAMETERS : P_TCODE LIKE TSTC-TCODE OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START OF SELECTION EVENT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*--Read SAP Transaction Code from the given input.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TSTC&lt;/P&gt;&lt;P&gt;WHERE TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;*--Get the Directory of Repository Objects for the&lt;/P&gt;&lt;P&gt;*---selected program name.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR' AND&lt;/P&gt;&lt;P&gt;OBJECT = 'PROG' AND&lt;/P&gt;&lt;P&gt;OBJ_NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;MOVE : TADIR-DEVCLASS TO V_DEVCLASS.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;*--Read System table TRDIR for the selected program name.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TRDIR&lt;/P&gt;&lt;P&gt;WHERE NAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;*--Get the function module name for the selected program name.&lt;/P&gt;&lt;P&gt;IF TRDIR-SUBC EQ 'F'.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TFDIR&lt;/P&gt;&lt;P&gt;WHERE PNAME = TSTC-PGMNA.&lt;/P&gt;&lt;P&gt;*--Get the function group for the selected program name.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM ENLFDIR&lt;/P&gt;&lt;P&gt;WHERE FUNCNAME = TFDIR-FUNCNAME.&lt;/P&gt;&lt;P&gt;*--Read the development class for the corresponding function group.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TADIR&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR' AND&lt;/P&gt;&lt;P&gt;OBJECT = 'FUGR' AND&lt;/P&gt;&lt;P&gt;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;*--Read all the entries into the internal table itab.&lt;/P&gt;&lt;P&gt;SELECT *&lt;/P&gt;&lt;P&gt;FROM TADIR&lt;/P&gt;&lt;P&gt;INTO TABLE ITAB&lt;/P&gt;&lt;P&gt;WHERE PGMID = 'R3TR' AND&lt;/P&gt;&lt;P&gt;OBJECT = 'SMOD' AND&lt;/P&gt;&lt;P&gt;DEVCLASS = V_DEVCLASS.&lt;/P&gt;&lt;P&gt;*--Read Transaction code information from the table tstct.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM TSTCT&lt;/P&gt;&lt;P&gt;WHERE SPRSL EQ SY-LANGU AND&lt;/P&gt;&lt;P&gt;TCODE EQ P_TCODE.&lt;/P&gt;&lt;P&gt;*-- Column Headings&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 ITAB[] IS INITIAL.&lt;/P&gt;&lt;P&gt;WRITE:/(95) SY-ULINE.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 'Exit Name',&lt;/P&gt;&lt;P&gt;21 SY-VLINE ,&lt;/P&gt;&lt;P&gt;22 'Description',&lt;/P&gt;&lt;P&gt;95 SY-VLINE.&lt;/P&gt;&lt;P&gt;WRITE:/(95) SY-ULINE.&lt;/P&gt;&lt;P&gt;LOOP AT ITAB.&lt;/P&gt;&lt;P&gt;*--Read SAP Enhancements short texts information.&lt;/P&gt;&lt;P&gt;SELECT SINGLE *&lt;/P&gt;&lt;P&gt;FROM MODSAPT&lt;/P&gt;&lt;P&gt;WHERE SPRSL = SY-LANGU AND&lt;/P&gt;&lt;P&gt;NAME = ITAB-OBJ_NAME.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;WRITE:/1 SY-VLINE,&lt;/P&gt;&lt;P&gt;2 ITAB-OBJ_NAME HOTSPOT ON,&lt;/P&gt;&lt;P&gt;21 SY-VLINE ,&lt;/P&gt;&lt;P&gt;22 MODSAPT-MODTEXT,&lt;/P&gt;&lt;P&gt;95 SY-VLINE.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE:/(95) SY-ULINE.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE ITAB.&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:' , SY-TFILL.&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:/(95) 'No User Exit exists'.&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:/(95) 'Transaction Code Does Not Exist'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT LINE-SELECTION EVENT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;GET CURSOR FIELD V_FIELD1.&lt;/P&gt;&lt;P&gt;CHECK V_FIELD1(4) EQ 'ITAB'.&lt;/P&gt;&lt;P&gt;SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).&lt;/P&gt;&lt;P&gt;*-- call transation SMOD : Sap Enhancement.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---End of Program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if usefull&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:23:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/user-exit/m-p/2846329#M666809</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:23:56Z</dc:date>
    </item>
  </channel>
</rss>

