Help for "WITH INCLUDES" in scan abap-source.....

Hiiii,
          Can anyone help me how to use "with includes" in "scan abap-source" for
          seperating includes in the program?????
          If anyone has sample code plz do send it for help....
Thanx,
Mandeep.

Hi
use the command
SCAN ABAP-SOURCE <source name> tokens..<itab1>
                          statements <itab2>
see the sample dummy code
  READ REPORT it_itab_1file-obj_name INTO it_itab1.
  SCAN ABAP-SOURCE it_itab1 TOKENS INTO it_itab21
                           STATEMENTS INTO it_itab3
                           STRUCTURES INTO it_itab6
                           WITH COMMENTS
                           WITH INCLUDES
                           FRAME PROGRAM FROM it_itab1
                           INCLUDE INTO it_itab_i
                           LEVELS INTO it_itab5.
*sort the level table
  SORT it_itab5 BY name.
  CLEAR v_flag1.
  READ TABLE it_itab21 WITH KEY type = 'I'.
  IF it_itab21-str NE 'REPORT'.
    IF it_itab21-str NE 'PROGRAM'.
      SELECT SINGLE subct INTO v_str11
      FROM ybstcobs
      WHERE objna EQ it_itab_1file-obj_name
      AND ( objct EQ 'PROG'
       OR objct EQ 'FUNC'
       OR objct EQ 'BDCP' ).
      IF v_str11 EQ 'I' AND sy-subrc EQ 0.
      ELSE.
        v_flag1 = 'X'.
      ENDIF.
    ENDIF.
  ENDIF.
  CHECK v_flag1 NE 'X'.
  CLEAR v_flag1.
*get the level of include strucuture
  PERFORM get_include_details.
*&      Form  get_include_details
*gets the include structure details
FORM get_include_details .
  LOOP AT it_itab5.
    READ TABLE it_itab3 INDEX it_itab5-from.
    it_itab_incl-incl_from = it_itab3-from.
    READ TABLE it_itab3 INDEX it_itab5-to.
    it_itab_incl-incl_to = it_itab3-to.
    it_itab_incl-incl_name = it_itab5-name.
    it_itab_incl-ln_level = it_itab5-depth.
    it_itab_incl-ln_level1 = it_itab5-level.
    APPEND it_itab_incl.
  ENDLOOP.
  SORT it_itab_incl BY ln_level.
ENDFORM.                    " get_include_details
Reward points for useful Answers
Regards
Anji
Message was edited by:
        Anji Reddy Vangala

Similar Messages

  • What is the use of  keyword SCAN ABAP-SOURCE

    Hello experts,
    what is the use of scan abap-source. please explain. what is tokens, statements, levels in that.

    Hi
    <b>SCAN</b>
    This statement is for internal use only.
    It cannot be used in application programs.
    <b>SCAN ABAP-SOURCE itab1 ...TOKENS INTO itab2
                           ...STATEMENTS INTO itab3.</b>
    Parts marked with " ..." are interchangeable
    <b>Addition 1</b>
    ... FROM n1
    <b>Addition 2</b>
    ... TO   n2
    Breaks down the source code table itab1 into tokens not from start to finish, but only from line n1 to line n2.
    The additions FROM n1 and TO n2 must, in this order, follow the specification of the source code table itab1.
    When using the start specification n1, use the addition WITHOUT TRMAC to ensure that there are no unnecessary database accesses to the table TRMAC.
    The end specification n2 is treated as "soft", i.e. a statement that begins on a line <= n2, but ends only on a line > n2, is returned completely.
    If the end specification n2 is split in a chain statement, only the split part up to the next comma is returned completely, not the entire chain statement up to the next period.
    Negative line specifications are not allowed and result in a runtime error.
    A line specification of 0 amounts essentially to no specification.
    If n1 number of lines in source code table, the scanner is not called (SY-SUBRC = 2).
    If n1 > n2 and n2 > 0, the scanner is not called (SY-SUBRC = 2).
    <b>
    Addition 3</b>
    ... KEYWORDS FROM itab4
    Does not return all statements, only those specified in the key word table itab4.
    If the key word table is empty (i.e. it contains 0 lines), all the statements are selected.
    The lines of the key word table are treated as a character field.
    To select a Native-SQL-statement or a macro definition, you can specify the pseudo key words EXEC_SQL or DEFINE_MACRO. It makes no difference whether the statements EXEC or DEFINE occur as well. Native SQL statements and macro definitions are returned as one statement (of type E or M even if the expansion of a macro definition results in more than one statement.
    If the key word table contains a blank line, blank statements are also selected.
    <b>Addition 4</b>
    ... LEVELS INTO itab5
    Stores details about each edited source code unit (source code table itab1 itself, expanded include-programs, expanded macro definitions) in the level table itab5.
    Specification of a level table makes sense only with the addition WITH INCLUDES.
    The level table itab5 must have the structure SLEVEL.
    The fields of the structure SLEVEL - and consequently the columns of the level table itab5 have the following meaning:
    TYPE
    Type of source code unit with the following possible values:
    P (Program)
    D (Internal DEFINE macro)
    R (Macro from table TRMAC)
    NAME
    Name of source code unit (name of include program, macro name)
    DEPTH
    Current nesting depth of source code unit (>= 1)
    LEVEL
    Index of superior (i.e. including or calling) source code unit in the level table (>= 1, if DEPTH >= 2, otherwise 0)
    STMNT
    Index of superior (i.e. including or calling) statement in the statement table (>= 1, if DEPTH >= 2, otherwise 0)
    FROM
    Index of first statement of source code unit in the statement table (>= 1)
    TO
    Index of last statement of source code unit in the statement table (>= 1)
    If the source code unit contains include programs or macro calls, the line range [ FROM, TO] in the statement table also covers the statements in subordinate source code units.
    <b>Addition 5</b>
    ...  STRUCTURES INTO itab6
    Details of the construction of the source text table are given in the structure table itab6.
    The structure table itab6 must have the structure SSTRUC.
    The fields in SSTRUC (which are also the columns of structure table itab6) have the following meanings:
    TYPE
    Type of the structure with possible values:
    P (Beginning of the source code)
    R (Subroutine)
    M (Macro, EXEC SQL)
    I (Loop)
    A (Case distinction)
    C (Condition in a case distinction)
    J (Goto command)
    D (Structured declaration)
    E (Event)
    S (Follow-on from simple structured statement)
    STMNT_TYPE
    The statement type of the beginning of the structure. The values are listed in the type pool SCAN in structure SCAN_STRUC_STMNT_TYPE.
    KEY_START
    Flags whether the start of the structure is described semantically ('X' if there is a special statement, otherwise ' ').
    KEY_END
    Flags whether the end of the structure is described semantically ('X' if there is a special statement, otherwise blank).
    STMNT_FROM
    Index of the first statement of the structure in the statement table itab3.
    STMNT_TO
    Index of the last statement of the structure in the statement table itab3.
    Index of the first substructure of the structure in structure table itab6.
    STRUC_TO
    Index of the last substructure of the structure in structure table itab6.
    BACK
    Index of the structure in the structure table itab6 that contains the structure as a substructure (0 if the structure is the root structure of a structure tree).
    <b>Addition 6</b>
    ... OVERFLOW INTO c1
    The addition is only allowed and required if the token table itab2 has the structure STOKEN or STOKEX.
    If a token is too large to be stored in the token table in the field STR, it is placed in the overflow area c1. The offset of the token in the overflow area then lies in the token table in the field OFF1.
    <b>Addition 7</b>
    ... WITH ANALYSIS
    Breaks down each token t = a+b(c) according to the logic of the RSYN key word >ANALY into its three components a, b and c.
    Offset and length of components a, b and c are stored in the fields LEN1, OFF2, LEN2, OFF3, and LEN3 in the token table. (The offset of OFF1 is always 0 and therefore not required.)
    If you specify the addition WITH ANALYSIS, the token table itab2 must have the structure STOKESX, so that the fields LEN1, OFF2, LEN2, OFF3 and LEN3 are available.
    If the token table has the structure STOKEX, you must consider the following:
    If the whole token exists in the token table, the offset specifications are relative to the token start. If the token is in the overflow area c1, the offset specifications are relative to the start of the overflow area.
    <b>Addition 8</b>
    ... WITH COMMENTS
    Returns comments also, with each individual comment representing a token. The system additionally stores entries for each full block of comments in the table itab3, differentiating between comments that occur within statements and those that occur at program level. In itab3, an entry for a comment within a statement always comes before the statement containing the comment.
    <b>Example</b>
    Look at the following program fragment. The preceding numbers are the indexes of the tokens.
    1    * An example  *
    2    * with scattered comments
    6    MOVE
    3    * Inserted comment 1
    7    X
    4    *  Inserted comment 2
    8    TO
    9    Y
    5    * Inserted comment 3
    SCAN then enters the following values for the components TYPE, FROM and TO (in this order from left to right) into itab3.
    'P' 1 2
      'S' 3 5
      'K' 6 9
    If the addition ... WITH COMMENTS is used, the table itab2 must have the line type STOKES or STOKESX.
    <b>Addition 9</b>
    ... WITH INCLUDES
    Also breaks down subordinate source code units (included programs, called macros) into tokens.
    You should normally combine the addition WITH INCLUDES with the addition LEVELS INTO itab5.
    If (at least) one included program does not exist, SY-SUBRC is set to 1 and the relevant INCLUDE statement is flagged in the statement table itab3 by the statement type J (instead of I), but the breakdown process continues. The level table itab5 contains no entry for include-programs that do not exist.
    If you combine WITH INCLUDES with WITHOUT TRMAC , TRMAC-Macros are not expanded because the system does not recognize them as subordinate source code units.
    When macro calls are expanded, no position specifications are available. The corresponding fields in the token table itab2 and the statement table itab3 are then set to 0.
    <b>Addition 10</b>
    ... WITH TYPE-POOLS
    This addition has the same effect as the WITH INCLUDES addition, except that with the former include programs belonging to type groups are broken down into tokens.
    <b>Addition 11</b>
    .. WITH LIST TOKENIZATION
    Tokens of the form (a1, a2, a3) are not returned as tokens but broken down into the elementary components.
    <b>Addition 12</b>
    ... WITHOUT TRMAC
    If a statement begins neither with an ABAP/4 key word nor with a DEFINE macro, the system does not check whether this is a TRMAC macro, but assumes an unknown statement. (Unknown statements are flagged in the statement table itab3 with a U in the field TYPE.)
    To avoid unnecessary database accesses to the table TRMAC, you should use the addition WITHOUT TRMAC whenever you assume that the source code to be scanned contains unknown statements. Unknown statements are particularly likely to occur if you use the addition FROM n1, because the scanner does not start at the beginning of the source code, but from a specified point.
    If you use WITHOUT TRMAC with WITH INCLUDES, TRMAC macros are not expanded because the system does not recognize them as subordinate source code units.
    <b>Addition 13</b>
    ... PROGRAM FROM c2
    <b>Addition 14</b>
    ... INCLUDE INTO c3
    <b>Addition 15</b>
    ... MESSAGE INTO c4
    <b>Addition 16</b>
    ... WORD    INTO c5
    <b>Addition 17</b>
    ... LINE    INTO n3
    <b>Addition 18</b>
    ... OFFSET  INTO n4
    The above additions have the same meaning as those for the
    SYNTAX-CHECK: statement: c2 is an input field for a program name to be assigned to the source code, while the fields c3, c4, c5, n3 and n4 are output fields in case an error occurs.
    To be able to analyze errors without modifying programs, use the additions INCLUDE, MESSAGE, WORD, LINE and OFFSET. These provide information about the errors which have occurred.
    <b>Variant 2</b>
    SCAN AND CHECK ABAP-SOURCE itab1 ...RESULT INTO itab2.
    Parts marked with " ..." are interchangeable
    <b>Extras:</b>
    1. ... PROGRAM FROM c1 2. ... INCLUDE INTO c2
    3. ... MESSAGE INTO c3
    4. ... WORD    INTO c4
    5. ... LINE    INTO n1
    6. ... OFFSET  INTO n2
    The syntax of the program in table itab1 is checked. During the check, all of the information from the program, such as statement structures, statements, tokens, data objects, types and do on are placed into the result field. This field must have the type SYSCH_RESULT, which is defined in type group SYSCH. You must therefore declare type group SYSCH in your ABAP-program using a TYPE-POOLS statement.
    &ABAP_ADDITION _1&
    ... PROGRAM FROM c1
    &ABAP_ADDITION _2&
    ... INCLUDE INTO c1
    &ABAP_ADDITION _3&
    ... MESSAGE INTO c3
    &ABAP_ADDITION _4&
    ... WORD    INTO c4
    &ABAP_ADDITION _5&
    ... LINE    INTO n1
    &ABAP_ADDITION _6&
    ... OFFSET  INTO n2
    The above additions have the same effect as the corresponding additions in the statement SYNTAX-CHECK: c1 is an input field for a program name to be assigned to the source code, the fields c2, c3, c4, n1 and n2 are output fields, used when errors occur.
    To enable you to analyze errors without having to modify the program, you should specify the INCLUDE, MESSAGE, WORD, LINE and OFFSET additions for the information about the error that occurred.
    <b>Reward if usefull</b>

  • Using SCAN ABAP-SOURCE keyword

    Hi,
    My requirement is to get a report program name from the user, drill down the report to see how many Includes and subroutines are there in the report and in which level.
    I was able to drill down the report for finding the Includes with their level using this key word SCAN ABAP-SOURCE.
    Can someone provide me with a code to find the number of subroutines along with the subroutine name and which level they are present.
    Thanks in advance.
    Harini

    Hi,
    I have already drilled down the report to find out thenumber of includes and their levels.
    By using CALL FUNCTION 'GET_GLOBAL_SYMBOLS'
    it accepts to search only for a character in the program.
    I require it to search for the keyword 'PERFORM' and also find in which level it is defined.
    Please let me know how to achieve this.

  • Regarding SCAN ABAP SOURCE PROGRAM

    Hi Friends,
    I am using SCAN ABAP PROGRAM in my code .
            SCAN ABAP-SOURCE  source_sub
            TOKENS     INTO  i_tokens_sub
            STATEMENTS INTO  i_statements_sub
            KEYWORDS   FROM  i_keywords_sub
            LEVELS     INTO  i_levels_sub
            WITH ANALYSIS.
    after this statement execution , i_token getting filled up with token used in source code source_sub
    but if i have to catch specific keywords is there a way that  i can append those keywords to  i_keywords_sub  structure and then scan so that a line where that particular keyword used can be captured .
    i am not knowing how to do that .Can i get some help on this.
    Thanks&Regards
    Poornima

    Hi,
    You can try using the SAP standard program RS_ABAP_SOURCE_SCAN and give key word for searching in the ABAP source.
    Thanks,
    Sriram Ponna.

  • SCAN ABAP-SOURCE : problems to recognize all DATA declarations

    Hi all !
    My problem is simple :
    When I scan a program, all data declarations structures are not recognized :
            SCAN ABAP-SOURCE t_code_prgm  TOKENS into t_tokens
                                      STRUCTURES into t_structures
                                      STATEMENTS into t_statements
                                          LEVELS into t_levels
                                      WITH INCLUDES
                                      WITH ANALYSIS.
    In "t_structures", for some data declarations, the scan find  statement types "d" (DATA) and "t" (TYPES), but not others ("k" --> constants ...etc...)
    With DATA, SCAN recognize itab like  "DATA : BEGIN OF itab ....", but no "DATA wa_data type ..." !!!
    Do someone know why ?
    I need this to scan programs and control how DATA are named.
    Thanks !
    Stephane.

    Hi,
    If RSA3 is giving the error that means the data source is not ready yet.
    May be you should again do the transports and see if there is no difference between the development and production system.
    Also make sure that you have maintained all the settings for the CO-PA to work as it was in the developement system.
    Also
    Try to run a delta after 2 hours of initialization in production dont schedule it immeadiately.
    Are you sure that delta and init and RSA3 was running fine in quality and developmenet system in the same way as you are trying here??
    Thanks
    Ajeet

  • F4 help for Time field in webdynpro abap

    Hi Guru's,
    how to get f4 help for time field in webdynpro abap.
    thanks in advance,
    narendra

    Hi Narendra,
    Check this link:
    Re: Time Search Help
    Also few more links here:
    http://forumsa.sdn.sap.com/search.jspa?forumID=249&threadID=&q=time+help&objID=f249&dateRange=lastyear&numResults=15&rankBy=10001
    Also check if this example helps you: WDR_TEST_HELP
    If your query is not yet answered then its advisable to post in webdynpro for abap (Web Dynpro ABAP). You may get some quick repliy.
    Regards,
    Swarna Munukoti.

  • Help for with slow, glitchy (late 2012) iMac

    This is an ANSWER and not a request for help.  I didn't know where to post this and apologize for stepping where I shouldn't. 
    I have a Late 2012 iMac that has been crashing, running slow, and now worse;  all my documents and everything in Finder have disappeared.  I discovered a fix that may help others with similar issues.  I use my iMac for use with Logic Pro X and Mainstage where freezeups are a disaster.  I thought about this awhile and realized I had installed a new USB 3.0 external hard disk a few months ago when this issue began. I began to experience more and more crashes and extremely slow performance.  Beach-balls and slow performance were common.  But the last straw was when everything in Finder disappeared.  My Document and Application folders were empty.  If I clicked on "About This Mac" I saw nothing.    It took two tries to prove my theory, but here's what I did to make "the fix".  I unplugged the USB 3.0 drive and all USB and external devices.  I did a restore of OSX Mt Lion.  All was back to normal.  But after plugging in the USB 3.0 drive, all the afore mentioned problems came back.  I did one more restore, this time NOT connecting the USB 3.0 external hard disk.  Now I have gone some time and my iMac's speed is back to "incredible", no beach balls or any sign of slow performance in recording or running any other app.  Apparently, the 2012 iMac; although spec'ed to be USB 3.0 compatible, may not be all that compatible. Hope this helps someone!

    Likely the external drive is bad or defective cable.

  • Search help for local system directories in ABAP program

    Hi all,
    Can anyone tell the standard search help available for local system directories on the client system?
    Regards,
    MVD

    Hi,
    You can use this FM.
    <b>RZL_READ_DIR_LOCAL</b> - Get list of files within specific directory(Application Server)
    *& Report  ZDIRFILES                                                   *
    REPORT  ZDIRFILES    .
    PARAMETER: p_fdir            type pfeflnamel DEFAULT '/usr/sap/tmp'.
    data: begin of it_filedir occurs 10.
            include structure salfldir.
    data: end of it_filedir.
    *START-OF-SELECTION
    START-OF-SELECTION.
    * Get Current Directory Listing for OUT Dir
      call function 'RZL_READ_DIR_LOCAL'
           exporting
                name     = p_fdir
           tables
                file_tbl = it_filedir.
    * List of files are contained within table it_filedir
      loop at it_filedir.
        write: / it_filedir-NAME.
      endloop.
    Or
    <b>FILE_GET_NAME</b> - Retrieve Logical file path.
    Use Transaction 'FILE' to view/create logical file paths
    Hope this will help.
    Regards,
    Ferry Lianto

  • Please help - I need help working with a "curved" scanned image!

    Hello --
    I've been looking here for a while and finally got around to registering because I have a question. I'm sure I have this posted in the wrong place, so don't jump me for that - I'm just not sure WHERE I should post a question / plea for help.
    I have a shape (kind of a wavy 3/4" stripe) that I need to reproduce in photoshop. I was able to take the original and scan it into my computer. Upon scanning, though, the color it no longer solid but actually looks a quite a bit speckled, and the edges of this stripe tend to not be 'crisp" and it need to redfine the edges. I need to repaint the stripe, and it has to remain the same 3/4" diameter all through it's length.
    If anyone can suggest a way that I can take this scanned image and redefine the edges so I'll have a "new" crisp, solid colored stripe, that I can keep the same 3/4" width and then will be able to highlight it and repaint it would be appreciated. I tried highlighting the shape and applying a thick "stroke" around the edge but this just made it worse -- kind of like using a pen on a piece of paper on top of glass -- almost impossible to write or draw smooth! It's for a small model airplane decal, so the edge needs to be sharp and crisp.
    Thanks for any help in advance!
    --Henry

    ¨Hi Henry,
    I'd use the Pen tool and trace around the shape in order to create a Vector Path or a Vector Shape. But, you'd need to study the black art of Bezier curves first.

  • Help needed with Include ZXRSRU01 in relation with currency conversions

    I'm implementing how to paper: Use variable time references in currency conversions (BW 3.3). When implementing variable exit RSR00001 & write include ZXRSRU01 an issue pops up.
    The relevant code is:
    <i> DATA: l_s_var_range TYPE rrs0_s_var_range.
    IF i_s_rkb1d-infocube EQ 'RHCURCON'.
        IF i_step = '3'.
          LOOP AT i_t_var_range INTO l_s_var_range WHERE vnam EQ 'ZCURDAT'.
            ZCL_IM_CURRCONV=>currdate = l_s_var_range-low.
          ENDLOOP.
        ENDIF.
    ENDIF.</i>
    When implementing the following message pops up:
    "l_s_var_range" has already been declared.
    In another statement ' l_s_var_range ' is already used.
    Any advice how to deal with this issue?
    thanks in advance
    tom

    Hi,
      somebody already declared that workarea (l_s_var_range), so you can directly use that without any declaration (data l_s_var_range type rsr0_.....). you can remove that statement and you can work.
       Otherwise if you want to use to declare your own workarea,
      data ls_range (or any name) type rsr0_....
    DATA: l_s_var_range TYPE rrs0_s_var_range. *** this statement you can remove since somebody declared the same.
    ****or use ur own work area name and use that work area within your code.
    data ls_var_range type rrs0_s_var_range.
    IF i_s_rkb1d-infocube EQ 'RHCURCON'.
    IF i_step = '3'.
    LOOP AT i_t_var_range INTO ls_var_range WHERE vnam EQ 'ZCURDAT'.
    ZCL_IM_CURRCONV=>currdate = ls_var_range-low.
    ENDLOOP.
    ENDIF.
    ENDIF.
    rgrds,
    v.sen.
    Message was edited by:
            Senthilkumar Viswanathan
    Message was edited by:
            Senthilkumar Viswanathan

  • How can you scan the Source Code of a bunch of function modules

    We are in a 46C system. I need to be able to scan the soruce code of a bunch of function modules. I was unable to use the RPR_ABAP_SOURCE_SCAN and return the lines with the string I was searching for.
    Thanks
    Hari

    Hi,
    Read the main program that is the funtion pool into an internal table with statement.
    READ REPORT
    Use the key-word
    SCAN ABAP-SOURCE
    You can use the addition with includes as the function pool contains only include programs the with includes addition will read the source code present in the include.
    Like this you can achieve it
    " Example
    DATA:
      itab TYPE TABLE OF char255,
      itab1 TYPE TABLE OF stoken,
      itab2 TYPE TABLE OF sstmnt.
    READ REPORT 'SAPLSFES' INTO itab.
    SCAN ABAP-SOURCE itab TOKENS INTO itab1
                          STATEMENTS INTO itab2
                          WITH INCLUDES.
    after this you can search the string in the internal table with lots of additions available in the SCAN ABAP_SOURCE
    regards
    sarves

  • Read ABAP source

    Hi,
    Does anyone know how to load ABAP source code to an internal table.
    Indeed, I'd like to write a tool to analyse my code and generate a calling tree.
    The "SCAN ABAP-SOURCE" instruction seems not to bo allowed in programs.
    Do you know others instruction to do that ?
    If not, can someone tell me where programs and function modules are stored (which tables) ?
    Thank you for your help,
    Quentin

    first refer this thread for download abap code into text file.
    once this completed than you can upload this text file by just gui_upload fm.
    How to download a ABAP report to text file

  • Downloading a report along with includes

    Hi,
    i want to download my 'Z' program which contains some includes,
    into my local folder. please provide me if there are any FM's or Standard Programs are there.........
    thank you

    hi
    good
    To find the sub objects of a main program use the following fun module
    RPR_ABAP_SOURCE_SCAN
    then use the same download program to download these includes like main program.
    or use the command
    SCAN ABAP-SOURCE...
    to find includes
    thanks
    mrutyun^

  • How to display Help for the message in our program

    Hi Experts,
    Do any one know how to display the HELP for the Message in our ABAP program? Just like the user click the Long Text button in SE91.Do we have any function modules or Class method to do that? Thanks in advance.
    Joe

    Hi Joe,
    While creating a message class in se93, theres a button (documentation) on the application tool bar. Click on that and you will be lead to a text editor where you can fill in the necessary documentation for the message you have created.

  • Function Module to get ABAP source code for a specific version

    Hi all
    Is there a function module that I can use to get the source code of another function module at a specific version?
    For example, can I call a function module passing in "FM_NAME" and "FM_VERSION" and have it return the lines of code associated with that object?
    Thanks in advance.
    Stuart

    Thanks guys
    That's incredibly helpful! I have one more question that I just thought of last night...
    Is there a way to hook into the code activation process? I want to be able to take a snapshot of the ABAP source code at each point when it is activated for use in another system, but need to be able to intercept this event and get the source code at that point in time.
    Any ideas?
    Thanks!

Maybe you are looking for