Error in copied include program

Hi friends,
i copied z program into y program the z program contains includes also i copied all.but in the copied program ( y program) in the includes the following error is coming
  REPORT/PROGRAM statement missing, or program type is I (INCLUDE).     
How to avoid the above error.
   thanks for all.

well in every report there has to be following line:
Report Y?????.
AND this has to be the first statement to come.
sometimes that line is not in the main report but in the first include (normally top-include).
as long as this is still the first statement all is fine.
But if you perhaps have now the include for your selection screen above the include which contains the critical line, it wont work since you have other statements (Parameters or Select-options) BEFORE that critical line.
easiest way is to leave it in the main frame programm right on top, above all the includes.

Similar Messages

  • Error while copying Z program to another enviroment

    Hi, experts
    I have a Z program into one client's enviroment, which works fine. I tried copying this program into another client's enviroment, and i get the following error message, while syntax check:
    "RC_IN1 must be a byte-type field. (Typ X or XSTRING)."
    And this error is on the following form:
    form xor using rc_in1 type c rc_in2 type c rc_out type c.
      data:
        li_abit type i,
        li_bbit type i.
      rc_out = space.
      if rc_in1 <> space.
        do 8 times.
          get bit sy-index of rc_in1 into li_abit.
          get bit sy-index of rc_in2 into li_bbit.
          if li_abit <> li_bbit.
            set bit sy-index of rc_out to 1.
          else.
            set bit sy-index of rc_out to 0.
          endif.
        enddo.
        if rc_out = space.
          rc_out = rc_in1.
        endif.
      endif.
    endform.
    When I check into one client's enviroment, it does not gives error. Only in THAT client.
    Why is this happening?
    Thanks in advance,
    Brian Gonsales

    Hi,
    are the both client environments hav same version (ECC 6).
    In ECC 6 version type X is not allowed.
    To avoid this problem,
    you need to declare the field of TYPE C.
    you need to get the value from Cl_ABAP_CHAR_UTILITIES.
    Regards
    Sandeep Reddy

  • Error: While Copying Standard Program FBCJ

    Dear Experts,
                        I tried to copy the standard program because the requirement was to change the menu fuction for save and post.
    So i copied the T.Code FBCJ to ZFBCJ. It Copied Successfully and i assigned the tcode also. But While executing the T code
    the system Shows the error message
    "System error in routine FI_TAX_GET_TXJCD_STRUCTURE
    error code 1 function builder TAX2"
    Kinldy help me to resolve this issue.
    Waiting for your valuable replies.
    Kindly give some ideas.
    Thanks and Regards,
    Karthik V
    Edited by: karthikani on Nov 24, 2010 10:30 AM

    Hi,
    are the both client environments hav same version (ECC 6).
    In ECC 6 version type X is not allowed.
    To avoid this problem,
    you need to declare the field of TYPE C.
    you need to get the value from Cl_ABAP_CHAR_UTILITIES.
    Regards
    Sandeep Reddy

  • Error . Copying Module Program

    Hello Friends ,
    I am trying to copy a module program SAPMZZTES1  with screens 1000 , 1100 , 1200 , 1300 , 1400 to another module pool program SAPMZZTES2 which would be a replica of the ealier module pool program .
    When I go to SE51 and do copy SAPMZZTES1 1000 to SAPMZZTES2 1000 . It gives me the following error .
    Program SAPMZZTES2 does not exist .
    Please advise .
    Thanks & Regards,

    HI,
    1. Go to SE38
    2. give the program name as SAPMZZTES1.
    3. Click on copy button (Ctrl + F5) or Programs --> Copy menuitem.
    4. Provide new name as SAPMZZTES2
    5. click copy and select all check boxes..
    it copies the program into SAPMZZTES2.
    <b>HARI: what is the difference between my solution and Sajan Solution?</b>
    Regards
    SAB

  • Error while copying a program

    Hello experts,
    I have got a ticket for a report.But its locked under some TR and i need to wait till its released.
    So i tried copying the report as a local object and modifying it time bieng.
    When i tried doing so its throwing a message "test objects cannot be created in foreign name spaces".
    Could you please tell mer why its showing this message and how could i proceed with this.
    Thanks in advance
    Akmal

    Hi,
    As it is the 'Z' report you should not have any problem in copying.
    If it is a report u better try copy and paste method.
    That can be an alternative for your problem.
    While copying from the program check whether u have any dependent objects for that program and copy them also.
    May be some 'Z' F.M in it.
    Cheers,
    Simha.

  • Getting run time errors while executing the copied SAP programs

    Hi folks,
    i want to copy an sap program.after coping i need to change some coding there.then i have to create a new transaction for that.
    i am just copying the sap program RQEEAL10(transaction-QA32) to Z_RQEEAL10. it has 4 include  programs.i am copying them to z programs like
    RQ00MF10 copied to z_RQ00MF10
    RQALVF14 copied to z_RQALVF14
    RQALVF16 copied to z_RQALVF16
    RQALVTOP copied to z_RQALVTOP.
    now i am executing that program Z_RQEEAL10.but i am getting run time errors as given below.
    <b>runtime error---</b>
    The termination occurred in the ABAP program "Z_RQEEAL10" in           
    "SELECT_FIELDS_MANIP2_F16".                                           
    The main program was "Z_RQEEAL10 ".                                                                               
    The termination occurred in line 257 of the source code of the (Include)
    program "RQALVF16"                                                    
    of the source code of program "RQALVF16" (when calling the editor 2570).
    --Error in ABAP statement when processing an internal table.  
    --When changing or deleting one or more lines of the internal table         
    "\PROGRAM=Z_RQEEAL10\DATA=SELECT_FIELDS" or when inserting in the table   
    "\PROGRAM=Z_RQEEAL10\DATA=SELECT_FIELDS", 0 was used as                  
    the line index. An index less than or equal to zero is not                
    allowed.                                                                               
    The error can occur when using the following options:                     
    1. "INDEX idx" for specifying the line number in the table                
    "\PROGRAM=Z_RQEEAL10\DATA=SELECT_FIELDS"                                 
       where you want to change, insert or delete.                            
    2. "FROM idx" for specifying the start index when deleting a line         
       area from or inserting a line area into the table                      
    "\PROGRAM=Z_RQEEAL10\DATA=SELECT_FIELDS".                                
    3. "TO idx" for specifying the end index when deleting a line             
       area from or inserting a line area into the table                      
    "\PROGRAM=Z_RQEEAL10\DATA=SELECT_FIELDS".                                                                               
    When the program terminated, the table had 2 lines.                       
    these r the runtime errors what i am getting.where is the problem?i have activated all interface & includes.plz advice.
    Thanks & regards

    Hi Madhu,
    I will give you one more check point where you have to give your concentration while copying the standard programs....
    Call Customer-Function (Function Exists) if any in the Program when copied will not get executed. Instead you need to call the FM Directly.
    one more is also here
    You are likely to have some problems with the text-elements and translation that may have been maintained for the original report.
    ~~Guduri

  • Include program error

    Hello to all,
    I am including one program to my main program. itab is defined in include program.
    I am reading itab in main program using  'read table itab index x'.
    but after executing main program there is error that this statement is not accessible.
    can u tell me ?
    Thanks a lot.
    Regards.

    Thanks for reply.
    data is filled in   itab  in include program .
    & reading in main program with index .

  • 3.1EA2 simple table copy including data - gives error

    hi
    3.1EA2 simple table copy including data - results in error-message "Ora-01403 data not found Ora-06512 line 1 ....."
    ..... copy failed
    although the copy did succeed and the table including data was copied.
    regards Karsten

    Hi Brian,
    3.1EA2 shows a little bit improvement on the copy paste from grid.
    However, these are another cases which I found :
    1. This happens everytime
    -invoke any select
    select sysdate
    from dual;
    - leave the cursor position on after semicolon
    - copy and paste the grid result, unto worksheet, so it will become like this
    select sysdate
    from dual;17-NOV-2011 10:42:29
    - now, again copy the grid result using (ctrl + C)
    - the selection on grid suddenly loose its focus (the yellow rectangle is disappear), instead the cursor on SQL worksheet makes selection.
    - therefore the clipboard does not store the grid value
    2. Intermittently, usually happens on the third attempts
    - invoke any select
    - copy and paste any cell into worksheet, press Enter
    - copy and paste different cell into worksheet, press Enter
    - copy and paste another different cel into worksheet, press Enter
    - you'll notice the copy does not copy the correct value
    - the workaround for this problem is to press Ctrl + C several times on the cell before pasting.
    Regards,
    Buntoro

  • Oracle R Enterprise installation ERROR: cannot copy dll file

    This is bit strange, I posted this message in 2 forums but surprisingly can't find it anymore!! Anyways, I would appreciate if anyone can help me a bit on this issue:
    I am having trouble installing ORE 1.3 on my windows 7 (home premium, personal notebook) 64 bit. I strictly followed the installation note and made sure all the path variables are defined properly. My R version is 2.15.1. My Windows user is a member of ora_dba group as can be seen below.
    C:\Users\sourabh>net localgroup ora_dba
    Alias name        ora_dba
    Comment         Oracle DBA Group
    Members
    NT AUTHORITY\SYSTEM
    sourabh
    The command completed successfully.Now when I try to install.bat (bare with me as I try to include the whole path as I believe there may be the problem. Note that my oracle and R installation is in H:\ drive, not in C:\. Can that be an issue about some windows permission? I off-course tried many ways, gave the user full permission, but no luck.)
    C:Users\sourabh>H:\ORACLE\OracleREnterprise\ORE\ore-server-win-x86_64-1.3\server\install.bat
    Oracle R Enterprise 1.3 Server Installation.
    Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
    Checking R ...................................
    Pass
    Checking R libraries ........................
    Pass
    Checking ORACLE_HOME ...............
    Pass
    Checking ORACLE_SID ..................
    Pass
    Checking sqlplus ...........................
    Pass
    Checking ORE ..............................
    Pass
    Current configuration
      R_HOME            = H:\ORACLE\OracleREnterprise\R\R-2.15.1
      R_LIBS_USER     = H:\ORACLE\Oracle11g\product\11.2.0\dbhome\R\library
      ORACLE_HOME  =  H:\ORACLE\Oracle11g\product\11.2.0\dbhome
      ORACLE_SID      = SINHA
    Do you wish to install ORE? [yes]
    Choosomg RQSIS tablespace
    PERMANENT tablespace to use for RQSYS [SYSAUX]:
      Using default SYSAUX
    TEMPORARY tablespace to use for RQSYS [TEMP]:
      Using default TEMP
      Tablespace summary
      PERMANENT tablespace = SYSAUX
      TEMPORARY tablespace = TEMP
    Installing libraries ..............
    Fail
      ERROR: cannot copy "rqe.dll" to "H:\ORACLE\Oracle11g\product\11.2.0\dbhome\bin"
    C:Users\sourabh>Now here is the default group/user and permissions structures for C:\ and H:\ installation directories on my computer:
    C:\program files :
            Group or user names                                    Permissions
            CREATOR OWNER                                          Special Permissions
            SYSTEM                                                 FULL control
            Administrators (Win7\administrators)                   FULL control               
            Users (Win7\Users)                                     Read & execute, List folder contents, Read
            TrustedInstaller                                       List folder contents, Special Permissions
    H:\%ORACLE_HOME% :
            Group or user names                                    Permissions
            Authenticated Users                                    Special Permissions
            SYSTEM                                                 FULL control
            Administrators (Win7\administrators)                   FULL control                Now noticed that there is no user called sourabh (Win7\Users) or Users (Win7\Users) on H:\, so I created and gave them "Full control" permission before running install script, but still no luck.... Any help please?
    Thanks,
    Sourabh

    Hi all,
    I have finally solved the problem, it seems somehow on my windows home premium I can't run the install script (on H:\ ) from the command line. I manually ran the batch script by double clicking on it, it ran fine and I was finally able to install ORE (server + supported + client) on my laptop. Now the connection -- followed through the manual, created user and granted all the roles. Now that I want to test the connection, I open R console and below are the input and output error message though it seems I can connect to the database:
    R>
    R> library(ORE)
    Loading required package: OREbase
    Attaching package: ‘OREbase’
    The following object(s) are masked from ‘package:base’:
        cbind, data.frame, eval, interaction, order, paste, pmax, pmin, rbind, table
    Loading required package: OREstats
    Loading required package: MASS
    Loading required package: OREgraphics
    Loading required package: OREeda
    Loading required package: OREdm
    Loading required package: lattice
    Loading required package: OREpredict
    Loading required package: ORExml
    R>
    R>
    R>
    R> ore.connect(user = 'scott', sid = 'sinha', host = 'win7', password = 'tiger', port = 1521, all = T)
    Error in .oci.GetQuery(conn, statement, data = data, prefetch = prefetch,  :
      ORA-06520: PL/SQL: Error loading external library
    ORA-06522: Unable to load DLL
    ORA-06512: at "RQSYS.RQEVALIMPL", line 17
    ORA-06512: at "RQSYS.RQEVALIMPL", line 14
    ORA-06512: at line 4
    R>
    R>
    R> ore.is.connected()
    [1] TRUE
    R> I get the exact same error when I try to use even the ORE user "rquser". Any suggestion how to resolve this error?
    Thanks,
    Sourabh

  • Subroutine inconsistency due to deletion of Include program

    Hi All,
          I created an include program(saved in local object) within my report(this was previously stored in a package) and I copied a few performs and forms from my report into the include program, but then i decided to go for the code without the include and commented the include statement in my report and deleted the include program(in se38). But now when I click on the perform statement in my report it gives a message "Object ZXY not found". The ZXY is my include program. Also when I view the report in se80 I find repetitive sub routines.Also I am not able to delete the duplicate sub routines in se80.
         How can we overcome this inconsistency in duplication of subroutines, how to suppress the message and make sure the code is consistent?

    Hi,
          So currently all the performs in program are part of some other include which is part of your main program?Because if not , obviously an error will be thrown.
    Have you tried the option of rebuilding object  list for the whole program?
    Right click on the program name in SE80--> Other functions->Rebuild object List
    Regards,
    Arun
    Edited by: arun warrier on Nov 30, 2011 1:36 PM

  • How to put display-only condition in a custom include program

    hello everyone,
    I have to make a custom include program that will be used instead of the already available 'bdcrecx1'.
    I have a couple of questions and would appreciate your help.
    I need to create a parameter with a checkbox. When this checkbox is 'X' the following 2 fields need to be greyed out, otherwise user should be able to enter values in them. How can I grey out the fields?
    Using my include I should have just the following:
    1)parameter with checkbox
    (if 'X', session and user greyed out)
    2)Session Name
    3)User Name
    Also, is there a way I can avoid putting the following onto the screen:
    1)Keep session (this will always be defaulted to 'X'
    2)No Data
    <b>Note:</b> I made a copy of 'bdcrecx1'and i'm doing changes according to my requirement.
    Thanks in advance.
    Regards,
    Fred.

    Hi,
    For your first question.
    use
    assign user command for checkbox say 'CLICK'..
    at selection-screen output.
    loop at screen.
    if screen-group3 = 'VALUE' and checkbox condition.
    screen-active = 0.
    else
    screen-active = 1.
    endloop.
    To make sure that the user enters the data in fields if checkbox is not grayed,
    do it in event
    start-of selection.
    if field is initial.
    exit.
    go back to previous screen.
    endif.
    for removing 'keep session' , check out for exits..
    Regards,
    Tanveer.
    Please mark helpful answers
    Sorry about the previous error in reply.
    Message was edited by: Tanveer Shaikh

  • Copying abap programs

    Dear Pals,
    I need some tips from you pals.
    My question is we have a development sytem there one transactions is running, I just wanted to copy the program, screens etc for that transaction to disk and move to some other company as it is for support. I had tried but i could not copy the screen painter forms etc.. How can i do it as it is very important.
    Your help will be appreciated.
    Regards
    Omer.

    Hi Mohamed,
    Here is a program given by someone last week in the forum.
    PROGRAM zdown.
    *=======================================================================
    *=================================
    Direct Download Enterprise version 1.2.
    THIS SOFTWARE IS FOR PERSONAL USE ONLY.
    THIS PROGRAM IS FREEWARE AND IS PROVIDED ON AN AS-IS BASIS WITHOUT
    *WARRANTY OF ANY KIND.
    THE PROVIDER SPECIFICALLY DISCLAIMS ANY OTHER WARRANTY, EXPRESS OR
    *IMPLIED, INCLUDING ANY WARRANTY OF
    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
    IN NO EVENT SHALL PROVIDER BE LIABLE FOR ANY CONSEQUENTIAL,
    PROGRAM DESCRIPTION & USE
    Allows a user to download programs, Functions, DD definitions, etc
    *to the presentation server.  This
    version searches recursively for nested includes and function
    *modules, and allows you to download
    the resulting code as standard text or HTML web pages within a
    *suitable directory structure.
    You can either search by object name, using wildcards if you wish,
    *or a combination of Author and
    object name.  If you want all objects returned for a particular
    *author then select the author name
    and choose the most suitable radiobutton.  All objects will be
    *returned if the fields to the right
    hand side of the radiobutton are left completely blank.
    Compatible with R/3 Enterprise only, for older versions of SAP you
    *will need Direct Download version 5.xx.
    This version removes the programming limitations imposed by
    *developing across SAP releases 3 to 4.6.
    This program is intended to allow a person to keep a visual
    *representation of a program for backup
    purposes only as has not been designed to allow programs to be
    *uploaded to SAP systems.
    AUTHOR          : E.G.Mellodew
    PROGRAM CONTACT : [email protected]
                      www.dalestech.com
    Types
    text element structure
    TYPES: ttexttable LIKE textpool.
    GUI titles
    TYPES: tguititle LIKE d347t.
    Message classes
    TYPES: BEGIN OF tmessage,
             arbgb LIKE t100-arbgb,
             stext LIKE t100a-stext,
             msgnr LIKE t100-msgnr,
             text  LIKE t100-text,
           END OF tmessage.
    Screen flow.
    TYPES: BEGIN OF tscreenflow,
             screen LIKE d020s-dnum,
             code LIKE d022s-line,
           END OF tscreenflow.
    Holds a table\structure definition
    TYPES: BEGIN OF tdicttablestructure,
             fieldname LIKE dd03l-fieldname,
             position  LIKE dd03l-position,
             keyflag   LIKE dd03l-keyflag,
             rollname  LIKE dd03l-rollname,
             domname   LIKE dd03l-domname,
             datatype  LIKE dd03l-datatype,
             leng      LIKE dd03l-leng,
             ddtext    LIKE dd04t-ddtext,
           END OF tdicttablestructure.
    Holds a tables attributes + its definition
    TYPES: BEGIN OF tdicttable,
             tablename    LIKE dd03l-tabname,
             tabletitle   LIKE dd02t-ddtext,
             istructure TYPE tdicttablestructure OCCURS 0,
           END OF tdicttable.
    Include program names
    TYPES: BEGIN OF tinclude,
             includename LIKE trdir-name,
             includetitle LIKE tftit-stext,
           END OF tinclude.
    Method
    TYPES: BEGIN OF tmethod,
             cmpname LIKE vseomethod-cmpname,
             descript LIKE vseomethod-descript,
             exposure LIKE vseomethod-exposure,
             methodkey TYPE string,
           END OF tmethod.
    Class
    TYPES: BEGIN OF tclass,
             scanned(1),
             clsname LIKE vseoclass-clsname,
             descript LIKE vseoclass-descript,
             msg_id LIKE vseoclass-msg_id,
             exposure LIKE vseoclass-exposure,
             state LIKE vseoclass-state,
             clsfinal LIKE vseoclass-clsfinal,
             r3release LIKE vseoclass-r3release,
             imethods TYPE tmethod OCCURS 0,
             idictstruct TYPE tdicttable OCCURS 0,
             itextelements TYPE ttexttable OCCURS 0,
             imessages TYPE tmessage OCCURS 0,
             textelementkey TYPE string,
             publicclasskey TYPE string,
             privateclasskey TYPE string,
             protectedclasskey TYPE string,
             typesclasskey TYPE string,
             exceptionclass TYPE i,
           END OF tclass.
    function modules
    TYPES: BEGIN OF tfunction,
             functionname LIKE tfdir-funcname,
             functiongroup LIKE enlfdir-area,
             includenumber LIKE tfdir-include,
             functionmaininclude LIKE tfdir-funcname,
             functiontitle LIKE tftit-stext,
             topincludename LIKE tfdir-funcname,
             progname LIKE tfdir-pname,
             programlinkname LIKE tfdir-pname,
             messageclass LIKE t100-arbgb,
             itextelements TYPE ttexttable OCCURS 0,
             iselectiontexts TYPE ttexttable OCCURS 0,
             imessages TYPE tmessage OCCURS 0,
             iincludes TYPE tinclude OCCURS 0,
             idictstruct TYPE tdicttable OCCURS 0,
             iguititle TYPE tguititle OCCURS 0,
             iscreenflow TYPE tscreenflow OCCURS 0,
           END OF tfunction.
    TYPES: BEGIN OF tprogram,
             progname LIKE trdir-name,
             programtitle LIKE tftit-stext,
             subc LIKE trdir-subc,
             messageclass LIKE t100-arbgb,
             imessages TYPE tmessage OCCURS 0,
             itextelements TYPE ttexttable OCCURS 0,
             iselectiontexts TYPE ttexttable OCCURS 0,
             iguititle TYPE tguititle OCCURS 0,
             iscreenflow TYPE tscreenflow OCCURS 0,
             iincludes TYPE tinclude OCCURS 0,
             idictstruct TYPE tdicttable OCCURS 0,
           END OF tprogram.
    Internal tables
    Dictionary object
    DATA: idictionary TYPE STANDARD TABLE OF tdicttable WITH HEADER LINE.
    Function modules.
    DATA: ifunctions TYPE STANDARD TABLE OF tfunction WITH HEADER LINE.
    Tree display structure.
    DATA: itreedisplay TYPE STANDARD TABLE OF snodetext WITH HEADER LINE.
    Message class data
    DATA: imessages TYPE STANDARD TABLE OF tmessage WITH HEADER LINE.
    Holds a single message class an all of its messages
    DATA: isinglemessageclass TYPE STANDARD TABLE OF tmessage WITH HEADER
    LINE.
    Holds program related data
    DATA: iprograms TYPE STANDARD TABLE OF tprogram WITH HEADER LINE.
    Classes
    DATA: iclasses TYPE STANDARD TABLE OF tclass WITH HEADER LINE.
    Table prototypes
    DATA: dumidictstructure TYPE STANDARD TABLE OF tdicttablestructure.
    DATA: dumitexttab TYPE STANDARD TABLE OF ttexttable.
    DATA: dumiincludes TYPE STANDARD TABLE OF tinclude.
    DATA: dumihtml TYPE STANDARD TABLE OF string.
    DATA: dumiheader TYPE STANDARD TABLE OF string .
    DATA: dumiscreen TYPE STANDARD TABLE OF tscreenflow .
    DATA: dumiguititle TYPE STANDARD TABLE OF tguititle.
    DATA: dumimethods TYPE STANDARD TABLE OF tmethod.
      Global objects
    DATA: objfile TYPE REF TO cl_gui_frontend_services.
    DATA: objruntimeerror TYPE REF TO cx_root.
    Constants
    CONSTANTS: versionno TYPE string VALUE '1.2'.
    CONSTANTS: tables TYPE string VALUE 'TABLES'.
    CONSTANTS: like TYPE string VALUE 'LIKE'.
    CONSTANTS: type TYPE string VALUE 'TYPE'.
    CONSTANTS: typerefto TYPE string VALUE 'TYPE REF TO'.
    CONSTANTS: structure TYPE string VALUE 'STRUCTURE'.
    CONSTANTS: lowstructure TYPE string VALUE 'structure'.
    CONSTANTS: occurs TYPE string VALUE 'OCCURS'.
    CONSTANTS: function TYPE string VALUE 'FUNCTION'.
    CONSTANTS: callfunction TYPE string VALUE ' CALL FUNCTION'.
    CONSTANTS: message TYPE string  VALUE 'MESSAGE'.
    CONSTANTS: include TYPE string VALUE 'INCLUDE'.
    CONSTANTS: lowinclude TYPE string VALUE 'include'.
    CONSTANTS: destination TYPE string VALUE 'DESTINATION'.
    CONSTANTS: is_table TYPE string VALUE 'T'.
    CONSTANTS: is_program TYPE string VALUE 'P'.
    CONSTANTS: is_screen TYPE string VALUE 'S'.
    CONSTANTS: is_guititle TYPE string VALUE 'G'.
    CONSTANTS: is_documentation TYPE string VALUE 'D'.
    CONSTANTS: is_messageclass TYPE string VALUE 'MC'.
    CONSTANTS: is_function TYPE string VALUE 'F'.
    CONSTANTS: is_class TYPE string VALUE 'C'.
    CONSTANTS: is_method TYPE string VALUE 'M'.
    CONSTANTS: asterix TYPE string VALUE '*'.
    CONSTANTS: comma TYPE string VALUE ','.
    CONSTANTS: period TYPE string VALUE '.'.
    CONSTANTS: dash TYPE string VALUE '-'.
    CONSTANTS: true TYPE i VALUE 1.
    CONSTANTS: false TYPE i VALUE 0.
    CONSTANTS: lt TYPE string VALUE '<'.
    CONSTANTS: gt TYPE string VALUE '>'.
    CONSTANTS: unix TYPE string VALUE 'UNIX'.
    CONSTANTS: non_unix TYPE string VALUE 'not UNIX'.
    CONSTANTS: background_colour TYPE string VALUE '#FFFFE0'.
    CONSTANTS: colour_white TYPE string VALUE '#FFFFFF'.
    CONSTANTS: colour_black TYPE string VALUE '#000000'.
    CONSTANTS: colour_yellow TYPE string VALUE '#FFFF00'.
    CONSTANTS: comment_colour TYPE string VALUE '#0000FF'.
    CONSTANTS: htmlextension TYPE string VALUE 'html'.
    CONSTANTS: textextension TYPE string VALUE 'txt'.
    Global variables
    DATA: statusbarmessage(100).
    DATA: forcedexit TYPE i VALUE 0.
    DATA: starttime LIKE sy-uzeit.
    DATA: runtime LIKE sy-uzeit.
    DATA: downloadfileextension TYPE string.
    DATA: downloadfolder TYPE string.
    DATA: slashseparator TYPE string.
    DATA: frontendopsystem TYPE string.
    DATA: customernamespace TYPE string.
    RANGES: soprogramname FOR trdir-name.
    RANGES: soauthor FOR usr02-bname.
    RANGES: sotable FOR dd02l-tabname.
    RANGES: sofunctionname  FOR tfdir-funcname.
    RANGES: soclassname FOR vseoclass-clsname.
    RANGES: sofunctiongroup FOR enlfdir-area.
    FIELD-SYMBOLS: <wadictstruct> TYPE tdicttable.
    Selection screen declaration
    Author
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE tblock1.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(23) tauth.
    PARAMETERS: pauth LIKE usr02-bname MEMORY ID mauth.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(36) tpmod.
    PARAMETERS: pmod AS CHECKBOX.
    SELECTION-SCREEN END OF LINE.
    *--- Local objects
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(36) t$tmp.
    PARAMETERS: p$tmp AS CHECKBOX DEFAULT ''.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE tblock2.
    Tables
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: rtable RADIOBUTTON GROUP r1.
    SELECTION-SCREEN COMMENT 5(20) trtable.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) tptable.
    PARAMETERS: ptable LIKE dd02l-tabname MEMORY ID mtable.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(79) ttnote.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(79) ttnote1.
    SELECTION-SCREEN END OF LINE.
    Message classes
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: rmess RADIOBUTTON GROUP r1.
    SELECTION-SCREEN COMMENT 5(18) tpmes.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) tmname.
    PARAMETERS: pmname LIKE t100-arbgb MEMORY ID mmname.
    SELECTION-SCREEN END OF LINE.
    Function modules
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: rfunc RADIOBUTTON GROUP r1.
    SELECTION-SCREEN COMMENT 5(30) trfunc.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) tpfname.
    PARAMETERS: pfname LIKE tfdir-funcname MEMORY ID mfname.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) tfgroup.
    PARAMETERS: pfgroup LIKE enlfdir-area MEMORY ID mfgroup.
    SELECTION-SCREEN END OF LINE.
    Classes
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: rclass RADIOBUTTON GROUP r1.
    SELECTION-SCREEN COMMENT 5(30) trclass.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) tpcname.
    PARAMETERS: pclname LIKE seoclass-clsname MEMORY ID mcname.
    SELECTION-SCREEN END OF LINE.
    Programs / includes
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: rprog RADIOBUTTON GROUP r1 DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 5(18) tprog.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(18) trpname.
    PARAMETERS: pprog LIKE trdir-name MEMORY ID mprog.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    Language
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(18) tmlang.
    PARAMETERS: pmlang LIKE t100-sprsl DEFAULT 'EN'.
    SELECTION-SCREEN END OF LINE.
    Package
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(18) tpack.
    PARAMETERS: ppack LIKE tadiv-devclass MEMORY ID mpack.
    SELECTION-SCREEN END OF LINE.
    Customer objects
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(27) tcust.
    PARAMETERS: pcust AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 32(25) tnrange.
    PARAMETERS: pcname TYPE namespace MEMORY ID mnamespace.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b2.
    Additional things to download.
    SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE tblock3.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tptext.
    PARAMETERS: ptext AS CHECKBOX DEFAULT 'X' MEMORY ID mtext.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tmess.
    PARAMETERS: pmess AS CHECKBOX DEFAULT 'X' MEMORY ID mmess.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tpinc.
    PARAMETERS: pinc AS CHECKBOX DEFAULT 'X' MEMORY ID minc.
    SELECTION-SCREEN COMMENT 40(20) trecc.
    PARAMETERS: preci AS CHECKBOX DEFAULT 'X' MEMORY ID mreci.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tpfunc.
    PARAMETERS: pfunc AS CHECKBOX DEFAULT 'X' MEMORY ID mfunc.
    SELECTION-SCREEN COMMENT 40(20) trecf.
    PARAMETERS: precf AS CHECKBOX DEFAULT 'X' MEMORY ID mrecf.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tdoc.
    PARAMETERS: pdoc AS CHECKBOX DEFAULT 'X' MEMORY ID mdoc.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tpscr.
    PARAMETERS: pscr AS CHECKBOX DEFAULT 'X' MEMORY ID mscr.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tpdict.
    PARAMETERS: pdict AS CHECKBOX DEFAULT 'X' MEMORY ID mdict.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) tsortt.
    PARAMETERS: psortt AS CHECKBOX DEFAULT ' ' MEMORY ID msortt.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b3.
    File details
    SELECTION-SCREEN: BEGIN OF BLOCK b4 WITH FRAME TITLE tblock4.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) tphtml.
    PARAMETERS: phtml RADIOBUTTON GROUP g1 DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(25) tcomm.
    PARAMETERS: pcomm AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(25) tback.
    PARAMETERS: pback AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) tptxt.
    PARAMETERS: ptxt RADIOBUTTON GROUP g1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) tppath.
    PARAMETERS: pfolder LIKE rlgrap-filename OBLIGATORY MEMORY ID
    mfolder.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b4.
    Display a directory picker window
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pfolder.
      DATA: objfile TYPE REF TO cl_gui_frontend_services.
      DATA: pickedfolder TYPE string.
      DATA: initialfolder TYPE string.
      CREATE OBJECT objfile.
      IF NOT pfolder IS INITIAL.
        initialfolder = pfolder.
      ELSE.
        objfile->get_temp_directory( CHANGING temp_dir = initialfolder
                                     EXCEPTIONS cntl_error = 1
                                               error_no_gui = 2
                                               not_supported_by_gui = 3 ).
      ENDIF.
      objfile->directory_browse( EXPORTING initial_folder = initialfolder
                                 CHANGING selected_folder = pickedfolder
                                 EXCEPTIONS cntl_error = 1
                                            error_no_gui = 2
                                            not_supported_by_gui = 3 ).
      IF sy-subrc = 0.
        pfolder = pickedfolder.
      ELSE.
        WRITE: / 'An error has occured picking a folder'.
      ENDIF.
    initialisation
    INITIALIZATION.
    Parameter screen texts.
      tblock1 = 'Author (Optional)'.
      t$tmp   = 'Programs only: include local objects'.
      tblock2 = 'Objects to download'.
      tblock3 = 'Additional downloads for progs, func modules and classes'.
      tblock4 = 'Download parameters'.
      tauth   = 'Author name'.
      tpmod   = 'Include programs modified by author'.
      tcust   = 'Only customer objects'.
      tnrange = 'Alt customer name range'.
      trtable = 'Tables / Structures'.
      tptable = 'Table name'.
      ttnote  = 'Please note: tables are stored under the username of the'.
      ttnote1 = 'last person who modified them.'.
      trfunc  = 'Function modules'.
      tpfname = 'Function name'.
      tfgroup = 'Function group'.
      trclass  = 'Classes'.
      tpcname = 'Class name'.
      tmess   = 'Message class'.
      tmname  = 'Class name'.
      tmlang  = 'Language'.
      tprog   = 'Programs'.
      trpname = 'Program name'.
      tpack   = 'Package'.
      tptxt   = 'Text document'.
      tphtml  = 'HTML document'.
      tcomm   = 'Highlight comments'.
      tback   = 'Include background colour'.
      tptext  = 'Text elements'.
      tpinc   = 'Include programs'.
      trecc   = 'Recursive search'.
      tppath  = 'File path'.
      tpmes   = 'Message classes'.
      tpfunc  = 'Function modules'.
      tdoc    = 'Function module documentation'.
      trecf   = 'Recursive search'.
      tpscr   = 'Screens'.
      tpdict  = 'Dictionary structures'.
      tsortt  = 'Sort table fields alphabetically'.
    Determine the frontend operating system type.
      PERFORM determinefrontendopsystem USING slashseparator.
    start-of-selection.
    START-OF-SELECTION.
      PERFORM checkcomboboxes.
      PERFORM fillselectionranges.
      downloadfolder = pfolder.
      starttime = sy-uzeit.
    Fool the HTML routines to stop them hyperlinking anything with a space
    *in them
      IF pcname IS INITIAL.
        customernamespace  = '^'.
      ELSE.
        customernamespace = pcname.
      ENDIF.
    Main program flow.
      CASE 'X'.
      Select tables
        WHEN rtable.
          PERFORM retrievetables USING idictionary[]
                                       sotable[]
                                       soauthor[].
      Select message classes tables
        WHEN rmess.
          PERFORM retrievemessageclass USING imessages[]
                                   soauthor[]      "Author
                                   pmname          "Message classname
                                   pmlang          "Message classanguage
                                  pmod.           "Modified by author
      Select function modules
        WHEN rfunc.
          IF pfname+0(1) CA asterix.
          Restrict the search to customer objects only.
            pcust = 'X'.
          ENDIF.
          IF pfgroup+0(1) CA asterix.
          Restrict the search to customer objects only.
            pcust = 'X'.
          ENDIF.
          PERFORM retrievefunctions USING sofunctionname[]   "Function name
                                          sofunctiongroup[]  "Function group
                                      ifunctions[]       "Foundfunctions
                                      pauth         "Author
                                      ptext         "Get textelements
                                      pscr          "Get screens
                                      pcust         "Customer data only
                              customernamespace. "Customer name range
          LOOP AT ifunctions.
          Find Dict structures, messages, functions, includes etc.
            PERFORM scanforadditionalfuncstuff USING ifunctions[]
                                                     preci
          "Search for includes recursively
                                                     precf
          "Search for functions recursively
                                                     pinc
          "Search for includes
                                                     pfunc
          "Search for functions
                                                     pdict
          "search for dictionary objects
                                                     pmess
          "Search for messages
                                                     pcust
          "Customer data only
                                                     customernamespace.
            "Customer name range
          ENDLOOP.
      Select Classes
        WHEN rclass.
          IF pclname+0(1) CA asterix.
          Restrict the search to customer objects only.
            pcust = 'X'.
          ENDIF.
          PERFORM retrieveclasses USING iclasses[]
                                        ifunctions[]
                                        soclassname[]       "Class name
                                        soauthor[]          "Author
                               customernamespace   "Customer namerange
                                        pmod       "Also modifiedby author
                                        pcust       "Customer objectonly
                                        pmess       "Find messages
                                        ptext               "Text Elements
                                   pdict               "Dictionarystructures
                                        pfunc               "Get functions
                                        pinc                "Get includes
                 precf               "Searchrecursively for functions
                preci               "Searchrecursively for includes
                'X'                 "Searchrecursively for classes
               pmlang.             "Language
          LOOP AT ifunctions.
          Find Dict structures, messages, functions, includes etc.
            PERFORM scanforadditionalfuncstuff USING ifunctions[]
                                                     preci
          "Search for includes recursively
                                                     precf
          "Search for functions recursively
                                                     pinc
          "Search for includes
                                                     pfunc
          "Search for functions
                                                     pdict
          "search for dictionary objects
                                                     pmess
          "Search for messages
                                                     pcust
          "Customer data only
                                                     customernamespace.
            "Customer name range
          ENDLOOP.
      Select programs
        WHEN rprog.
          IF pprog+0(1) CA asterix.
          Restrict the search to customer objects only.
            pcust = 'X'.
          ENDIF.
          PERFORM retrieveprograms USING iprograms[]
                                         ifunctions[]
                                         soprogramname[]    "Program name
                                         soauthor[]         "Author
                               customernamespace  "Customer nam range
                               pmod               "Also modifiedby author
                               pcust              "Customer object only
                                         pmess              "Find messages
                                         ptext              "Text Elements
                                         pdict         "Dictionaystructures
                                         pfunc            "Get functions
                                         pinc               "Get includes
                                         pscr               "Get screens
           precf              "Search recursively for functions
           preci              "Searchrecursively for includes
                                        p$tmp              "local objects
                                         ppack.             "Package
      ENDCASE.
    end-of-selection
    END-OF-SELECTION.
      IF forcedexit = 0.
      Set the file extension and output type of the file
        IF ptxt IS INITIAL.
          downloadfileextension = htmlextension.
        ELSE.
          downloadfileextension = textextension.
        ENDIF.
      Decide what to download
        CASE 'X'.
        Download tables
          WHEN rtable.
            IF NOT ( idictionary[] IS INITIAL ).
              PERFORM downloadddstructures USING idictionary[]
                                                 pfolder
                                                 htmlextension
                                                 space
                                                 psortt.
            Free up any memory used for caching HTML versions of tables
              LOOP AT idictionary.
                FREE MEMORY ID idictionary-tablename.
              ENDLOOP.
              GET TIME.
              runtime = sy-uzeit - starttime.
              PERFORM filltreenodetables USING idictionary[]
                                               itreedisplay[]
                                               runtime.
              CLEAR idictionary[].
            ENDIF.
        Download message class
          WHEN rmess.
            IF NOT ( imessages[] IS INITIAL ).
              SORT imessages ASCENDING BY arbgb msgnr.
              LOOP AT imessages.
                APPEND imessages TO isinglemessageclass.
                AT END OF arbgb.
                  PERFORM downloadmessageclass USING isinglemessageclass[]
                                                     imessages-arbgb
                                                     pfolder
                                                     downloadfileextension
                                                     phtml
                                                     space
                                                     pcomm
                                                     customernamespace
                                                     pinc
                                                     pdict
                                                     pmess.
                  CLEAR isinglemessageclass[].
                ENDAT.
              ENDLOOP.
              GET TIME.
              runtime = sy-uzeit - starttime.
              PERFORM filltreenodemessages USING imessages[]
                                                 itreedisplay[]
                                                 runtime.
              CLEAR imessages[].
            ENDIF.
        Download functions
          WHEN rfunc.
            IF NOT ( ifunctions[] IS INITIAL ).
              PERFORM downloadfunctions USING ifunctions[]
                                              pfolder
                                              downloadfileextension
                                              space
                                              pdoc
                                              phtml
                                              pcomm
                                              customernamespace
                                              pinc
                                              pdict
                                              textextension
                                              htmlextension
                                              psortt.
            Free up any memory used for caching HTML versions of tables
              LOOP AT ifunctions.
                LOOP AT ifunctions-idictstruct ASSIGNING <wadictstruct>.
                  FREE MEMORY ID <wadictstruct>-tablename.
                ENDLOOP.
              ENDLOOP.
              GET TIME.
              runtime = sy-uzeit - starttime.
              PERFORM filltreenodefunctions USING ifunctions[]
                                                  itreedisplay[]
                                                  runtime.
              CLEAR ifunctions[].
            ENDIF.
        Download Classes
          WHEN rclass.
            IF NOT ( iclasses[] IS INITIAL ).
              PERFORM downloadclasses USING iclasses[]
                                            ifunctions[]
                                            pfolder
                                            downloadfileextension
                                            htmlextension
                                            textextension
                                            phtml
                                            pcomm
                                            customernamespace
                                            pinc
                                            pdict
                                            pdoc
                                            psortt.
            Free up any memory used for caching HTML versions of tables
              LOOP AT ifunctions.
                LOOP AT ifunctions-idictstruct ASSIGNING <wadictstruct>..
                  FREE MEMORY ID <wadictstruct>-tablename.
                ENDLOOP.
              ENDLOOP.
            Free up any memory used for caching HTML versions of tables
              LOOP AT iprograms.
                LOOP AT iprograms-idictstruct ASSIGNING <wadictstruct>..
                  FREE MEMORY ID <wadictstruct>-tablename.
                ENDLOOP.
              ENDLOOP.
              GET TIME.
              runtime = sy-uzeit - starttime.
              PERFORM filltreenodeclasses USING iclasses[]
                                                ifunctions[]
                                                itreedisplay[]
                                                runtime.
              CLEAR iclasses[].
              CLEAR ifunctions[].
            ENDIF.
        Download programs
          WHEN rprog.
            IF NOT ( iprograms[] IS INITIAL ).
              PERFORM downloadprograms USING iprograms[]
                                             ifunctions[]
                                             pfolder
                                             downloadfileextension
                                             htmlextension
                                             textextension
                                             phtml
                                             pcomm
                                             customernamespace
                                             pinc
                                             pdict
                                             pdoc
                                             psortt.
            Free up any memory used for caching HTML versions of tables
              LOOP AT ifunctions.
                LOOP AT ifunctions-idictstruct ASSIGNING <wadictstruct>..
                  FREE MEMORY ID <wadictstruct>-tablename.
                ENDLOOP.
              ENDLOOP.
            Free up any memory used for caching HTML versions of tables
              LOOP AT iprograms.
                LOOP AT iprograms-idictstruct ASSIGNING <wadictstruct>..
                  FREE MEMORY ID <wadictstruct>-tablename.
                ENDLOOP.
              ENDLOOP.
              GET TIME.
              runtime = sy-uzeit - starttime.
              PERFORM filltreenodeprograms USING iprograms[]
                                                 ifunctions[]
                                                 itreedisplay[]
                                                 runtime.
              CLEAR iprograms[].
              CLEAR ifunctions[].
            ENDIF.
        ENDCASE.
        IF NOT ( itreedisplay[] IS INITIAL ).
          PERFORM displaytree USING itreedisplay[].
        ELSE.
          statusbarmessage = 'No items found matching selection criteria'.
          PERFORM displaystatus USING statusbarmessage 1.
        ENDIF.
      ENDIF.
    *--- Memory IDs
    User name
      SET PARAMETER ID 'MAUTH' FIELD pauth.
    Table name
      SET PARAMETER ID 'MTABLE' FIELD ptable.
    Message class
      SET PARAMETER ID 'MMNAME' FIELD pmname.
    Function
      SET PARAMETER ID 'MFNAME' FIELD pfname.
    Function group
      SET PARAMETER ID 'MFGROUP' FIELD pfgroup.
    Class
      SET PARAMETER ID 'MCNAME' FIELD pclname.
    Program
      SET PARAMETER ID 'MPROG' FIELD pprog.
    Customer namespace
      SET PARAMETER ID 'MNAMESPACE' FIELD pcname.
    Folder
      SET PARAMETER ID 'MFOLDER' FIELD pfolder.
    Package
      SET PARAMETER ID 'MPACK' FIELD ppack.
    Text element checkbox
      SET PARAMETER ID 'MTEXT' FIELD ptext.
    Messages checkbox
      SET PARAMETER ID 'MMESS' FIELD pmess.
    Includes checkbox
      SET PARAMETER ID 'MINC' FIELD pinc.
    Recursive includes checkbox.
      SET PARAMETER ID 'MRECI' FIELD preci.
    Functions checkbox
      SET PARAMETER ID 'MFUNC' FIELD pfunc.
    Recursive functions checkbox
      SET PARAMETER ID 'MRECF' FIELD precf.
    Function module documntation checkbox
      SET PARAMETER ID 'MDOC' FIELD pdoc.
    Screens checkbox
      SET PARAMETER ID 'MSCR' FIELD pscr.
    Dictionary checkbox
      SET PARAMETER ID 'MDICT' FIELD pdict.
    Sort table ascending checkBox
      SET PARAMETER ID 'MSORTT' FIELD psortt.
    ****************************************SUBROUTINES*******************
    checkComboBoxes...  Check input parameters
    FORM checkcomboboxes.
      IF pauth IS INITIAL.
        CASE 'X'.
          WHEN rtable.
            IF ptable IS INITIAL.
              statusbarmessage = 'You must enter either a table name or author.'.
            ENDIF.
          WHEN rfunc.
            IF ( pfname IS INITIAL ) AND ( pfgroup IS INITIAL ).
              IF pfname IS INITIAL.
                statusbarmessage = 'You must enter either a function name or author.'.
              ELSE.
                IF pfgroup IS INITIAL.
                  statusbarmessage = 'Must enter either a func gp, or an author name.'.
                ENDIF.
              ENDIF.
            ENDIF.
          WHEN rprog.
            IF pprog IS INITIAL.
                statusbarmessage = 'You must enter either a program name or
    author name.'.
            ENDIF.
        ENDCASE.
    Check the user name of the person objects are to be downloaded for
      ELSE.
        IF pauth = 'SAP*' OR pauth = 'SAP'.
          statusbarmessage = 'Sorry cannot download all objects for SAP
    standard user'.
        ENDIF.
      ENDIF.
      IF NOT statusbarmessage IS INITIAL.
        PERFORM displaystatus USING statusbarmessage 3.
        forcedexit = 1.
        STOP.
      ENDIF.
    ENDFORM.                    "
    "checkComboBoxes
    fillSelectionRanges...      for selection routines
    FORM fillselectionranges.
      DATA: valuetofind TYPE string.
      IF NOT pauth IS INITIAL.
        soauthor-sign = 'I'.
        soauthor-option = 'EQ'.
        soauthor-low = pauth.
        APPEND soauthor.
      ENDIF.
      IF NOT ptable IS INITIAL.
        IF NOT pcname IS INITIAL AND NOT ptable+0(1) = '/'.
          CONCATENATE pcname ptable INTO valuetofind.
        ELSE.
          valuetofind = ptable.
        ENDIF.
        sotable-sign = 'I'.
        sotable-option = 'EQ'.
        sotable-low = valuetofind.
        APPEND sotable.
      ENDIF.
      IF NOT pfname IS INITIAL.
        IF NOT pcname IS INITIAL AND NOT pfname+0(1) = '/'.
          CONCATENATE pcname pfname INTO valuetofind.
        ELSE.
          valuetofind = pfname.
        ENDIF.
        sofunctionname-sign = 'I'.
        PERFORM addoption USING valuetofind sofunctionname-option.
        sofunctionname-low = valuetofind.
        APPEND sofunctionname.
      ENDIF.
      IF NOT pfgroup IS INITIAL.
        IF NOT pcname IS INITIAL AND NOT pfgroup+0(1) = '/'.
          CONCATENATE pcname pfgroup INTO valuetofind.
        ELSE.
          valuetofind = pfgroup.
        ENDIF.
        sofunctiongroup-sign = 'I'.
        PERFORM addoption USING valuetofind sofunctiongroup-option.
        sofunctiongroup-low = valuetofind.
        APPEND sofunctiongroup.
      ENDIF.
      IF NOT pclname IS INITIAL.
        IF NOT pcname IS INITIAL AND NOT pclname+0(1) = '/'.
          CONCATENATE pcname pclname INTO valuetofind.
        ELSE.
          valuetofind = pclname.
        ENDIF.
        soclassname-sign = 'I'.
        PERFORM addoption USING valuetofind soclassname-option.
        soclassname-low = valuetofind.
        APPEND soclassname.
      ENDIF.
      IF NOT pprog IS INITIAL.
        IF NOT pcname IS INITIAL AND NOT pprog+0(1) = '/'.
          CONCATENATE pcname pprog INTO valuetofind.
        ELSE.
          valuetofind = pprog.
        ENDIF.
        soprogramname-sign = 'I'.
        PERFORM addoption USING valuetofind soprogramname-option.
        soprogramname-low = valuetofind.
        APPEND soprogramname.
      ENDIF.
    ENDFORM.                    "
    " fillSelectionRanges
    addOption...  fills the option value of ranges
    FORM addoption USING value(valuetofind)
                               option.
      IF valuetofind CA asterix.
        option = 'CP'.
      ELSE.
        option = 'EQ'.
      ENDIF.
    ENDFORM.                    "
    "addOption
    retrieveTables...       

  • Error during copying of conditions

    Hi,
    Can anyone tell me the resolution for below error.
    Error during copying of conditions
    Message no. 06663
    Diagnosis
    Internal error.
    Procedure
    Please inform your programming department or system administrator.
    Thanks

    Hello,
    Check assignment of  access sequence to the gross price or include condition table A068 in your access sequence.
    Regards,

  • Canu00B4t create the include program HPEPAYMACRO

    Can any one help me???
    The paymacro is not defined for Perú so I need to create the include program HPEPAYMACRO as copy from H99PAYMACRO, when I try to do the copy there is a error message "Object name HPEPAYMACRO reserved for package P", but the package P does not exist.
    How could I create the program HPEPAYMACRO?
    Thanks for advance.

    Hi Rich,
    You're right, it's a warning, I just have to press enter to continue...
    Thanks,
    Huong Le

  • Strange problem when copying standard program SAPF100 (transaction F.05)

    Hi there ABAP'ers,
    I've got a very strange problem I can't figure out :/
    I'm doing a copy of a standard program - SAPF100, which stands for F.05 transaction.
    I copy it to ZSAPF100 and after launching it, filling a selection-screen with data and F8 I'm receiving a dump
    GETWA_NOT_ASSIGNED
    Field symbol has not yet been assigned.
    The termination occurred in the ABAP program "SAPF100" in "DO_SKC1C".      
    The main program was "ZSAPF100 ".                                                                               
    The termination occurred in line 253 of the source code of the (Include)   
    program "SAPF100_SBEW"                                                    
    of the source code of program "SAPF100_SBEW" (when calling the editor 2530).
    and when debugging the place in Zcode where error occurs - really a fs is not assigned, whilst in standard code is assigned.
    Why such situation appeared? I just copied the standard program and launched a copy :/ How to deal with that problem?
    I will be very very very thankful for a help.
    Regards. P.

    I'm doing the copy:
    Components:
    Source       
    Text elements
    Documentation
    Variants     
    User interface
    Screens      
    INCLUDEs     
    Includes:
    FROM            ->              TO
    <ICON>                         Z<ICON>     
    <LINE>                          Z<LINE>                 
    FIUUMS40                        ZFIUUMS40               
    RKASMAWF                        ZRKASMAWF               
    SAPF100_I1                      ZSAPF100_I1             
    SAPF100_POSTINGS                ZSAPF100_POSTINGS       
    SAPF100_SBEW                    ZSAPF100_SBEW           
    SAPF100_SLDATA                  ZSAPF100_SLDATA         
    SCHEDMAN_EVENTS                 ZSCHEDMAN_EVENTS        
    And still DUMP

Maybe you are looking for