Classes download/upload

Hi,
We have a 46d playpen system where i have been developing applications. I want to move one particular application to a 620 box. The application has many abap classes, I am unable to find a download utility to download the ABAP class code.
Does anyone know if there is any way of downloading uploading abap classes, a colleague recommended "direct download" from daletech but the enterprise version doesnt work on a 46d system.
If not, is it possible to TP from a 46d to 620, given that neither boxes are configured for transports.
Cheers
JP

Work with a Basis person and see if they can manually move the transport for you.  You might want to build a small transport first for testing before you commit to moving a lot of stuff. 
Maybe there are some notes in OSS in regards to transports between 4.6 and 6.2.

Similar Messages

  • Download/upload a class created in se24

    hi friends,
    i have created a class in se24, now can i download that class in a local file, also i want 2 send it to my friend the class i have created, so can he be able to upload that file,if yes how?

    Hi Amit,
    You can import Class in your program but cant download & upload Class.
    Same is applicable to BADIs.
    To import Class in your program, goto SE24 & click FILE => IMPORT
    Best regards,
    Prashant

  • Peformance Turning for File Download / Upload with Enabled SharePoint Audit

    Greetings all, may I ask your help for Peformance Issues?
    Background:
    I tried to create a ASP.NET Web Page to download/upload/list SharePoint file and deployed to IIS website in same application server (will NOT use web part as some users are NOT allowed to direct access confidential workspace)
    Besides, for Audit Log record purpose, the page will impersonate (without password) the logged in user:
    SPUserToken userToken = web.AllUsers[user].UserToken;
    SPSite s = new SPSite(siteStr, userToken);
    For File Listing, the web service can provide fast response, and we are using service A/C for connection (as no auting for listing, but require audit for file download upload)
    Several implemeation options tested for File Downloiad / Upload, but issues occured and finding listed below:
    Issues
    1) SharePoint Object Model
    When I open Site (using new SPSite), it's too slow to respond. (under 1s for all operations, but require 10~50s for open SPSIte. e.g.
    using(SPSite s = new SPSite(siteStr) //50s
    How can I download/upload file without open SPSite object (using SharePoint object model, but user token should be kept to allow SHarePoint identifiy user actions. e.g. Updated by Tom, NOT system administrator)?
    2) SharePoint default web service
    For file download, I tried to use SharePoint Web Service for download file, it's quick but how can SharePoint record the audit log to downloaded user, and not service A/C? ( e.g. View by Tom, NOT system administrator)
    With Windows SSO solution, please note system should NOT prompt to ask user password for use impersonation
    3) HTTP Request API (for file download)
    As mentioned in point 2, if the system cannot get password from user, SharePoint also recorded service A/C in audit log... ><
    Thank you for your kine attention.
    .NET Beginner 3.5

    Thank you for prompt response, please find my reply with Underline:
    Hi,
    Maybe I'm not quite clear about the architecture you have now.
    Is your asp.net application deployed in separate IIS site but in the same physical server as SharePoint?
    Yes
    "we are using service A/C for connection", can you please explain the 'A/C'?
    Domain User, Local Admin and also SharePoint Service Admin A/C
    Opening SPSite is relatively slower but shouldn't take 50 sec. However it depends on your server hardware configuration. You should meet the minimum hardware requirements for SharePoint.
    Assigned double resources based on minimum hardware requirements.
    For details, 50s is the load test result. But for other SharePoint operation, it takes around/under 3s reponse time.
    Are you using SharePoint Audit log? Exactly If so then why don't you just put the hyperlink to the documents in your asp.net page. User maybe have to login once in SharePoint site but
    it depends on your security architecture. For example if both of your sites in local intranet and you are using windows integrated authentication, SSO will work automatically  User is NOT allowed
    to access SharePoint site/server (not implemented for sepreate server yet, as performance issues occured for
    separate site in same server)  directly from Internet, the
    middle server with web interface created for user request.
    Whatever I understands gives me the feeling that you download the file using HTTPWebRequest C# class. However regarding security it depends on how authentication is setup in asp.net web site and in sharepoint. If both site uses windows integrated security
    and they are in the same server, you can use the following code snippet:
    using (WebClient webClient = new WebClient())
    webClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
    webClient.DownloadFile("file ur in sharepoint", "download directory");
    Thanks, will try and reply later
    But still, as I've mentioned, not quite clear about the whole architecture.
    A) Request Handling
    1) User use browser to request file listing and/or download file (hereafter called: File Download Request) from custom ASP.NET page (Let's say In Server 1, IIS 1)
    2) ASP.NET page  or File Handler ashx (Server 1, IIS 1) call custom web service, SharePoint deault/OOTB web service or using SharePoint Object Model to access SharePoint Document Library (in Server 1,
    IIS 2)
    3) Both SharePoint and IIS Web Site
    (Server 1, IIS 1 & IIS2) using the same service A/C
    4) The web service , File Handler return file obeject to IIS1
    5) IIS 1 reply File Download Request to user
    B) Application Architecture (In testing environment)
    1) no load balancing
    2) 1 DB server (Server 2)
    3) 1 Application Server (with IIS 1 - ASP.NET, IIS 2, SharePoint Web Site with default SharePoint Web Service, IIS 3 SharePoint Admin Site & IIS 4 Custom SharePoint Web Service)
    4) Sepreate AD Server (Server 3)
    Thanks,
    Sohel Rana
    http://ranaictiu-technicalblog.blogspot.com
    .NET Beginner 3.5

  • Download & Upload Data Dictionary objects

    Hi,
      Like we have utilities for downloading and uploading ABAP Reports, SAP Scripts & Dynpros; does anybody have some tool to download data dictionary objects from one system and uploading it onto another??
      Else we would have to use transports from source to destination - which is my fallback option.
      Any pointers to such tools would be highly appreciated.
    Thanks,
    Pramod

    Hi,
    Refer to below threads:
    How to Download Upload Dictionary Tables (No data)????
    Re: Upload/download DDIC Objects, FM, Classes ....
    Hope you find your solution here.
    Reward points for useful answers
    Rgds,

  • Download/Upload ABAP Programs, screens, texts, etc

    Hi Experts,
    Is there any standard program or any tool by which we can download/ upload ABAP programs, sapscripts, Screens, text-elements, Webdynpro for ABAP applications to a local file????
    The Download to local server option in SE38 just gives a text copy of program without any screens, text eleemnts, etc which is not as per my requirement.
    Points will be rewarded.
    Regards,
    Mansi.

    use This
    REPORT  ZDOWNLOAD.
    *& Report  ZDOWNLAOD
                     I N F O R M A T I O N                            *
    Module             :
    FUNCTIONAL         :
    Developer          :
    Functional Spec#   :
    Date Of Creation   :
    Transport Request# :
    Program NAME       :
    Transaction Code   :
    DEVELOPMENT CLASS  :
    DESCRIPTION        :
                     Change History
    FUNCTIONAL         :
    Developer          :
    Functional Spec#   :
    Date Of Change     :
    Transport Request# :
    Change DESCRIPTION :
    *======================================================================================================================
    Direct Download Enterprise version 1.3.1.
    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 THE PROVIDER BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL OR INCIDENTAL DAMAGES, EVEN IF PROVIDER
    HAS BEEN ADVISED BY CLIENT OF THE POSSIBILITY OF SUCH POTENTIAL LOSS OR DAMAGE.
    CLIENT AGREES TO HOLD PROVIDER HARMLESS FROM AND AGAINST ANY AND ALL CLAIMS, LOSSES, LIABILITIES AND EXPENSES.  BY
    INSTALLING OR RUNNING THIS PROGRAM YOU ARE AGREEING TO THE TERMS AND CONDITONS STATED ABOVE.
    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.
    In order to be able to download files to the SAP server you must first set up a logical filepath within transaction
    'FILE', or use an existing one.  You must also create a external operating system command in SM69 called ZMKDIR. This
    will then be used to create any directories needed on the SAP server
    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 cont
    SAP Tables
    TABLES: TRDIR, SEOCLASS, TFDIR, ENLFDIR, DD02L.
    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.
    Exception class texts
    TYPES: BEGIN OF TCONCEPT,
             CONSTNAME TYPE STRING,
             CONCEPT TYPE SOTR_CONC,
           END OF TCONCEPT.
    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,
             ICONCEPTS TYPE TCONCEPT 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 of paths created on the SAP server
    DATA: ISERVERPATHS TYPE STANDARD TABLE OF STRING 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.
    DATA: DUMICONCEPTS TYPE STANDARD TABLE OF TCONCEPT.
      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.3.1'.
    CONSTANTS: TABLES TYPE STRING VALUE 'TABLES'.
    CONSTANTS: TABLE TYPE STRING VALUE 'TABLE'.
    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 '&lt;'.
    CONSTANTS: GT TYPE STRING VALUE '&gt;'.
    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: SERVERSLASHSEPARATOR TYPE STRING.
    DATA: FRONTENDSLASHSEPARATOR TYPE STRING.
    DATA: SLASHSEPARATORTOUSE TYPE STRING.
    DATA: SERVERFILESYSTEM TYPE FILESYS_D.
    DATA: SERVERFOLDER TYPE STRING.
    DATA: FRONTENDOPSYSTEM TYPE STRING.
    DATA: SERVEROPSYSTEM TYPE STRING.
    DATA: CUSTOMERNAMESPACE TYPE STRING.
    RANGES: SOPROGRAMNAME FOR TRDIR-NAME.
    RANGES: SOAUTHOR FOR USR02-BNAME.
    RANGES: SOTABLENAMES 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(15) TRTABLE.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(15) TPTABLE.
    SELECT-OPTIONS: SOTABLE FOR DD02L-TABNAME.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(79) TTNOTE.
    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(15) TPFNAME.
    SELECT-OPTIONS: SOFNAME FOR TFDIR-FUNCNAME.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 10(15) TFGROUP.
    SELECT-OPTIONS: SOFGROUP FOR ENLFDIR-AREA.
    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(15) TPCNAME.
    SELECT-OPTIONS: SOCLASS FOR SEOCLASS-CLSNAME.
    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(15) TRPNAME.
    SELECT-OPTIONS: SOPROG FOR TRDIR-NAME.
    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(29) TCOMM.
    PARAMETERS: PCOMM AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 5(29) 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.
    Download to SAP server
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(25) TSERV.
    PARAMETERS: PSERV RADIOBUTTON GROUP G2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 8(20) TSPATH.
    PARAMETERS: PLOGICAL LIKE FILENAME-FILEINTERN MEMORY ID MLOGICAL.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN COMMENT /28(60) TSDPATH.
    Download to PC
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(25) TPC.
    PARAMETERS: PPC RADIOBUTTON GROUP G2 DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 8(20) TPPATH.
    PARAMETERS: PFOLDER LIKE RLGRAP-FILENAME MEMORY ID MFOLDER.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK B4.
    Display options
    SELECTION-SCREEN: BEGIN OF BLOCK B5 WITH FRAME TITLE TBLOCK5.
    Display final report
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) TREP.
    PARAMETERS: PREP AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    Display progress messages
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(33) TPROMESS.
    PARAMETERS: PPROMESS AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK B5.
    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.
      IF SY-BATCH IS INITIAL.
        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.
      ENDIF.
    AT SELECTION-SCREEN.
      CASE 'X'.
        WHEN PPC.
          IF PFOLDER IS INITIAL.
          User must enter a path to save to
            MESSAGE E000(OO) WITH 'You must enter a file path'.
          ENDIF.
        WHEN PSERV.
          IF PLOGICAL IS INITIAL.
          User must enter a logical path to save to
            MESSAGE E000(OO) WITH 'You must enter a logical file name'.
          ENDIF.
      ENDCASE.
    AT SELECTION-SCREEN ON PLOGICAL.
      IF NOT PSERV IS INITIAL.
        CALL FUNCTION 'FILE_GET_NAME'
          EXPORTING
            LOGICAL_FILENAME = PLOGICAL
          IMPORTING
            FILE_NAME        = SERVERFOLDER
          EXCEPTIONS
            FILE_NOT_FOUND   = 1
            OTHERS           = 2.
        IF SY-SUBRC = 0.
          IF SERVERFOLDER IS INITIAL.
            MESSAGE E000(OO) WITH 'No file path returned from logical filename'.
          ELSE.
          Path to display on the selection screen
            TSDPATH = SERVERFOLDER.
          Remove the trailing slash off the path as the subroutine buildFilename will add an extra one
            SHIFT SERVERFOLDER RIGHT DELETING TRAILING SERVERSLASHSEPARATOR.
            SHIFT SERVERFOLDER LEFT DELETING LEADING SPACE.
          ENDIF.
        ELSE.
          MESSAGE E000(OO) WITH 'Logical filename does not exist'.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOPROG-LOW.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'PROG'
          OBJECT_NAME           = SOPROG-LOW
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOPROG-LOW
        EXCEPTIONS
          CANCEL                = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOPROG-HIGH.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'PROG'
          OBJECT_NAME           = SOPROG-HIGH
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOPROG-HIGH
        EXCEPTIONS
          CANCEL                = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOCLASS-LOW.
      CALL FUNCTION 'F4_DD_ALLTYPES'
        EXPORTING
          OBJECT               = SOCLASS-LOW
          SUPPRESS_SELECTION   = 'X'
          DISPLAY_ONLY         = ''
          ONLY_TYPES_FOR_CLIFS = 'X'
        IMPORTING
          RESULT               = SOCLASS-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOCLASS-HIGH.
      CALL FUNCTION 'F4_DD_ALLTYPES'
        EXPORTING
          OBJECT               = SOCLASS-HIGH
          SUPPRESS_SELECTION   = 'X'
          DISPLAY_ONLY         = ''
          ONLY_TYPES_FOR_CLIFS = 'X'
        IMPORTING
          RESULT               = SOCLASS-HIGH.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOFNAME-LOW.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'FUNC'
          OBJECT_NAME           = SOFNAME-LOW
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOFNAME-LOW
        EXCEPTIONS
          CANCEL                = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOFNAME-HIGH.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'FUNC'
          OBJECT_NAME           = SOFNAME-HIGH
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOFNAME-HIGH
        EXCEPTIONS
          CANCEL                = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOFGROUP-LOW.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'FUGR'
          OBJECT_NAME           = SOFGROUP-LOW
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOFGROUP-LOW
        EXCEPTIONS
          CANCEL                = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR SOFGROUP-HIGH.
      CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
        EXPORTING
          OBJECT_TYPE           = 'FUGR'
          OBJECT_NAME           = SOFGROUP-HIGH
          SUPPRESS_SELECTION    = 'X'
          USE_ALV_GRID          = ''
          WITHOUT_PERSONAL_LIST = ''
        IMPORTING
          OBJECT_NAME_SELECTED  = SOFGROUP-HIGH
        EXCEPTIONS
          CANCEL                = 1.
    initialisation
    INITIALIZATION.
    Parameter screen texts.
      TBLOCK1 = 'Author (Optional)'.
      T$TMP   = 'Programs only: include local objects'.
      TBLOCK2 = 'Objects to download'.
      TBLOCK3 = 'Additional downloads for programs, function modules and classes'.
      TBLOCK4 = 'Download parameters'.
      TBLOCK5 = 'Display options'.
      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  = 'Note: tables are stored under the username of the 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'.
      TSPATH  = 'Logical file name'.
      TPMES   = 'Message classes'.
      TPFUNC  = 'Function modules'.
      TDOC    = 'Function module documentation'.
      TRECF   = 'Recursive search'.
      TPSCR   = 'Screens'.
      TPDICT  = 'Dictionary structures'.
      TSORTT  = 'Sort table fields alphabetically'.
      TSERV   = 'Download to server'.
      TPC     = 'Download to PC'.
      TREP    = 'Display download report'.
      TPROMESS  = 'Display progress messages'.
    Determine the frontend operating system type.
      IF SY-BATCH IS INITIAL.
        PERFORM DETERMINEFRONTENDOPSYSTEM USING FRONTENDSLASHSEPARATOR FRONTENDOPSYSTEM.
      ENDIF.
      PERFORM DETERMINESERVEROPSYSTEM USING SERVERSLASHSEPARATOR SERVERFILESYSTEM SERVEROPSYSTEM.
    Determine if the external command exists.  If it doesn't then disable the server input field
      PERFORM FINDEXTERNALCOMMAND.
    start-of-selection.
    START-OF-SELECTION.
      PERFORM CHECKCOMBOBOXES.
      PERFORM FILLSELECTIONRANGES.
      STARTTIME = SY-UZEIT.
    Don't display status messages if we are running in the background
      IF NOT SY-BATCH IS INITIAL.
        PPROMESS = ''.
      ENDIF.
    Fool the HTML routines to stop them hyperlinking anything with a space in them
      IF PCNAME IS INITIAL.
        CUSTOMERNAMESPACE  = '^'.
      ELSE.
        CUSTOMERNAMESPACE = PCNAME.
      ENDIF.
    Determine which operating slash and download directory to use
      CASE 'X'.
        WHEN PPC.
          SLASHSEPARATORTOUSE = FRONTENDSLASHSEPARATOR.
          DOWNLOADFOLDER = PFOLDER.
        WHEN PSERV.
          SLASHSEPARATORTOUSE = SERVERSLASHSEPARATOR.
          DOWNLOADFOLDER = SERVERFOLDER.
      ENDCASE.
    Main program flow.
      CASE 'X'.
      Select tables
        WHEN RTABLE.
          PERFORM RETRIEVETABLES USING IDICTIONARY[]
                                       SOTABLENAMES[]
                                       SOAUTHOR[].
      Select message classes tables
        WHEN RMESS.
          PERFORM RETRIEVEMESSAGECLASS USING IMESSAGES[]
                                             SOAUTHOR[]      "Author
                                             PMNAME          "Message class name
                                             PMLANG          "Message class language
                                             PMOD.           "Modified by author
      Select function modules
        WHEN RFUNC.
          PERFORM RETRIEVEFUNCTIONS USING SOFUNCTIONNAME[]   "Function name
                                          SOFUNCTIONGROUP[]  "Function group
                                          IFUNCTIONS[]       "Found functions
                                          SOAUTHOR[]         "Author
                                          PTEXT              "Get text elements
                                          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.
          PERFORM RETRIEVECLASSES USING ICLASSES[]
                                        IFUNCTIONS[]
                                        SOCLASSNAME[]       "Class name
                                        SOAUTHOR[]          "Author
                                        CUSTOMERNAMESPACE   "Customer name range
                                        PMOD                "Also modified by author
                                        PCUST               "Customer object only
                                        PMESS               "Find messages
                                        PTEXT               "Text Elements
                                        PDICT               "Dictionary structures
                                        PFUNC               "Get functions
                                        PINC                "Get includes
                                        PRECF               "Search recursively for functions
                                        PRECI               "Search recursively for includes
                                        'X'                 "Search recursively 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.
          PERFORM RETRIEVEPROGRAMS USING IPROGRAMS[]
                                         IFUNCTIONS[]
                                         SOPROGRAMNAME[]    "Program name
                                         SOAUTHOR[]         "Author
                                         CUSTOMERNAMESPACE  "Customer name range
                                         PMOD               "Also modified by author
                                         PCUST              "Customer object only
                                         PMESS              "Find messages
                                         PTEXT              "Text Elements
                                         PDICT              "Dictionay structures
                                         PFUNC              "Get functions
                                         PINC               "Get includes
                                         PSCR               "Get screens
                                         PRECF              "Search recursively for functions
                                         PRECI              "Search recursively 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[]
                                                 DOWNLOADFOLDER
                                                 HTMLEXTENSION
                                                 SPACE
                                                 PSORTT
                                                 SLASHSEPARATORTOUSE
                                                 PSERV
                                                 PPROMESS.
            Free up any memory used for caching HTML versions of tables
              LOOP AT IDICTIONARY.
                FREE MEMORY ID IDICTIONARY-TABLENAME.
              ENDLOOP.
            Display donwload report
              IF NOT PREP IS INITIAL.
                GET TIME.
                RUNTIME = SY-UZEIT - STARTTIME.
                PERFORM FILLTREENODETABLES USING IDICTIONARY[]
                                                 ITREEDISPLAY[]
                                                 RUNTIME.
              ENDIF.
              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
                                                     DOWNLOADFOLDER
                                                     DOWNLOADFILEEXTENSION
                                                     PHTML
                                                     SPACE
                                                     PCOMM
                                                     CUSTOMERNAMESPACE
                                                     PINC
                                                     PDICT
                                                     PMESS
                                                     SLASHSEPARATORTOUSE
                                                     PSERV
                                                     PPROMESS.
                  CLEAR ISINGLEMESSAGECLASS[].
                ENDAT.
              ENDLOOP.
            Display download report
              IF NOT PREP IS INITIAL.
                GET TIME.
                RUNTIME = SY-UZEIT - STARTTIME.
                PERFORM FILLTREENODEMESSAGES USING IMESSAGES[]
                                                   ITREEDISPLAY[]
                                                   RUNTIME.
              ENDIF.
              CLEAR IMESSAGES[].
            ENDIF.
        Download functions
          WHEN RFUNC.
            IF NOT ( IFUNCTIONS[] IS INITIAL ).
              PERFORM DOWNLOADFUNCTIONS USING IFUNCTIONS[]
                                              DOWNLOADFOLDER
                                              DOWNLOADFILEEXTENSION
                                              SPACE
                                              PDOC
                                              PHTML
                                              PCOMM
          

  • ECC6.0 code download/upload with unicode

    Hi, we have a need for on-going parallel code maintenance of 2 separate development instances.  In end effect we need to manually synchronize two development instances for a period of time.  We have before in the past used custom programs and some of the standard SAP utilities provided.  However I'd be surprised if there isn't a more comprehensive utility supplied by SAP by now for this purpose.  By now I mean with release ECC6.0 with unicode active.  Does anyone out there know of a utility that can download any program(WebDynpro, BSP, R/3 dynpro, report, program, function module, class, etc with all relevant textpools and documentation) to a file so that it can be uploaded in its entirety without great effort?  We currently have a custom program which downloads/uploads ABAP source and text but it only works with standard executable r/3 programs.
    Thanks in advance,
    Kevin

    Here is the link for the google code site where you can download Saplink.
    http://code.google.com/p/saplink/
    Here is the direct link to the saplink installation zip file.  There should be some instructions within.
    http://saplink.googlecode.com/files/SAPlink_install-0.1.3.zip
    Once you have the base installation installed, you can then start adding plugins for other development objects.  The plugins have their own site.
    http://code.google.com/p/saplink/wiki/pluginList
    REgards,
    Rich Heilman

  • Calculating Download/Upload TED???

    Hi All,
    I am writing a program that uses URL & URLConnection.
    I want to calculate the total TED in bytes used by the program.
    chars mostly = 1byte per char
    \n = 2bytesMy question is:
    by calculating the total chars and there size and adding it to the uploaded and downloaded variables
    I have calculated the size of the obvious data,
    but is there any other data I need to take into consideration to get an acurate accumulation of TED??
    Below I have given the Usage class that stores the TED
    and a method that will use the Usage class.
    public class Usage{
      private static int uploaded;
      private static int downloaded;
      public static String upload(String url){
        int urlSize;
        //calc size
        uploaded += urlSize;
        return url;
      public static String download(String content){
        int contSize;
        //calc size
        downloaded+= contSize;
        return content;
      public int getUploaded(){
        return uploaded;
      public int getDownloaded(){
        return downloaded;
      public int getTotalUsage(){
        return downloaded + uploaded;
      public void reset(){
        uploaded = 0;
        downloaded = 0;
    public String getPageData(String sUrl) throws Exception{
      URL url = new URL(Usage.upload(sUrl));
      URLConnection urlConn = url.openConnection();
      BufferedReader read = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
      String line = ;
      String page = "";
      while((line = read.readLine()) != null)
        page += line;
      read.close();
      return Usage.download(page);
    }

    Thanx for the advice,
    I already did that but for more of a Realtime down speed used 10 millis, and for average down speed:
    //Average download speed
    public String myDownloadMethod(String url){
      long downloadTime;
      int size;
      String pageData;
      float rate;
      size = Usage.getDownloaded();
      downloadTime = System.currentTimeMillis();
      pageData = getPageData(url);
      downloadTime =  System.currentTimeMillis() - downloadTime;
      size = Usage.getDownloaded() - size;
      rate = (size /(1024*1024))/(downloadTime /1000);
      //...............code
      return pageData;
    * At this point:
    * size contains the amount of data transfered;
    * downloadTime contains the amount of Milliseconds it took to download the data
    * Average Rate (d/s) = rate
    }

  • Can anyone tell me why a picture would change color when I try to download/upload it?  It is the exact same picture- chosen the same way and when it goes to any other program it changes the color (I've tried canvas on demand and mpixpro.  I've also tried

    Can anyone tell me why this picture changes color when I try to download/upload it?  It is the exact same picture I have taken from the same location.  The image on the left is via preview and the image on the right is what is shows like when I try to download it.  I have emailed it to myself and it shows fine on the computer and in CS4, but when I look at the download via my phone or on another computer it shows the wonky color on the right.  I have checked the color space shows RGB/8 bit.  Any ideas why or how to fix it?  It isn't with any one specific session.... and I've tried it on both my desktop and my laptop- saved image to an external hard drive and to drop box.  I've tried sending the image to canvas on demand, my email, mpxipro, POST editing- all the same result.  Please HELP!!  What am I doing wrong?

    Most of the time you see something like that. The image in question has a color profile other then sRGB. Some image viewers/displayers are color managed and others are not.  So the image do not look the same in all of the applications you use. So colors seem to change.
    Try converting it to sRGB color and see if then looks the same all around. Also I think PC and Mac displays are set to different gamma something like 1.8 and 2.2
    Though I'm colorblind I even see color variations.

  • Basic Questions on ActionTec MI424-WR Router - problems with poor download/upload speed

    First, I will get to the point and ask my questions, then will explain what's happening - I'm interested in hearing whether the right actions are being taken to solve my problem.
    1) After perusing the forums, I see frequent reference to the "Rev" version of the ActionTec MI424-WR Router.  How do you find the Rev version?  I have logged into the Router and in the "System Monitoring" icon, the Router Status lists my Hardware version as 'A'.  Does this mean I have Rev 'A'?
    2) What is Verizon handing out these days for Routers?  Mine is being replaced, and I am wondering what to expect.  I have Verizon FIOS Phone, TV, and Internet service, and have the 25/25 Internet service.  Will they give me another MI424-WR?  If so, what Rev level are they likely to give me?
    Here's why my router is being replaced - opinions/comments/advice welcomed.
    For the past year or two, I've consistently measured (via speedtest.speakeasy.net) about 30Mbs download, and around 22-25 Upload.  Lately, I noticed that my downloads were quite slow, so I tested my speed at the above website, which I had not done in many months.  I measured only about 2-3 Download and 1-2 up.  Note all of what I am discussing hear takes place with hard-wired ethernet, NOT wireless.
    I tried testing from multiple computers, running XP, Vista, and Windows 7.  All getting consistently similar poor speeds.  I verified my account still is supposed to have 25/25/ service, which I verified online. 
    Tried rebooting the router, no change.  Then tried hard reset (pushing in the recessed button, holding it for about 20-30 seconds.  After it reconnected to the Internet, I tested speed again.  No change.
    Interestingly, I tested wireless speed on the laptop I have.  Speed is MUCH better, around 15 down, and 10-12 up.
    I tried the speed optimization tool on two of my PCs, it made no improvement.  Finally, got into an online chat with a Verizon Tech.  He did some tests on the line, we repeated some of the things I already tried, and then he asked how old my Router was...I am pretty sure it is the original one I received when I first signed up for FIOS, around 5-6 years ago, which is one of the reasons I asked how to tell which rev level I had.   So the tech concluded the problem was probably my Router.
    I TEND to agree, especially because I recently had an "anomaly" on my network.  My son complained one day that Internet was down.  When I got home, I found out my NetGear Gigbit switch was dead, and two of my hard-wired ethernet network printers could no longer talk to the network.  I replaced the switch, so now I am thinking perhaps the Router was damaged somehow.  I have no idea what the cause of this anomaly was - everything that connects to my network was plugged into Triplite ISOBAR surge protectors, but that only protects AC power. 
    I would think a hardware failure would completely kill the ethernet portion of the router, not simply reduce speed, but I could be wrong.  Anyone been through something similar to this before?  I expect to receive the new Router next Thursday, so hopefully I should know by then, but still - what should the next steps be if the new router does not fix the problem?
    Thanks for any comments, insight or shared experiences you might be willing to share...
    Solved!
    Go to Solution.

    This is embarrassing.
    Smith6612, you are absolutely correct, and you nailed it!
    When all this mess started, I checked my Verizon account to make sure I was signed up for 25/25 Internet.  I was.
    I don't know what has happened, but after reading Smith6612's response, I went back to recheck my account.  I was set up for 15/5!  So, the speedtest measurements I have been getting the last couple of days are exactly what I should be getting.  Two possibilities:
    1) My Triple-Play bundle must have expired in the past two weeks by coincidence.
    2) The Verizon tech may have changed my account profile when I worked with them online last week, although this was never discussed.
    At any rate, Smith6612 wins the prize.  It certainly explains the download/upload speeds I am getting.  I have logged into Verizon and signed up for a new bundle.  According to their website, my new profile should take effect Tuesday 1/10, so after that point, I should be measuring 25/25 again.
    Thanks to all who responded to this thread.  I will update this thread to confirm after Tuesday.  I get nervous whenever I have to change anything with Verizon - although everything has worked fine for the past few years, we have so many services with them - Cell Phone, TV, Internet, and Home Phone, that I worry something will go wrong with the billing, but we'll see.

  • In dreamweaver mx 2004 and dreamweaver cs4, how I configure, when download/upload do not ask me to include DEPENDED FILES but act without including ?

    in dreamweaver mx 2004 and dreamweaver cs4, how I configure, when download/upload do not ask me to include DEPENDED FILES but act without including ?

    Open the Preferences panel (Edit menu on Windows, Dreamweaver menu on a Mac), and select the Site category. There are two checkboxes there for dependent files. Make sure both are selected. The Dreamweaver default is NOT to upload/download dependent files. You need to click Yes, if you want the dependent files to be included.

  • Is it possible to download/Upload more that one AOL objects using FNDLOAD.

    Hi,
    I need to download responsibilities and then its will need to migrate in PRD using fndload.
    in my case, i have more 50 responsibilities. i want to download all responsibilities in one shot using FNDLOAD commnad. same way to upload in other instance in one shot.
    Is it possible to download/upload more than one AOL object like Repsonsibilities,menu, function, lookup, flexfield etc using FNDLOAD in Oracle Apps R12.
    configuration :
    EBS : r12.1.2
    DB : 11gR3.
    Thank you,
    Nitin

    Try this
    $ FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct file_name.ldt FND_RESPONSIBILITY RESP_KEY="%SYS%"
    Log filename : L2117062.log
    Report filename : O2117062.out
    $ more L2117062.log
    L2117062.log
    +---------------------------------------------------------------------------+
    Application Object Library: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    module:
    +---------------------------------------------------------------------------+
    Current system time is 25-MAR-2013 11:48:55
    +---------------------------------------------------------------------------+
    Downloading FND_RESPONSIBILITY to the data file file_name.ldt
    Downloaded FND_APPLICATION WMS
    Downloaded FND_RESPONSIBILITY WMS DW_SYSADMIN
    Downloaded FND_RESPONSIBILITY WMS LSP_SYSADMIN_KEY
    Downloaded FND_APPLICATION CS
    Downloaded FND_RESPONSIBILITY CS CS_KB_SYSTEM_ADMIN
    Downloaded FND_RESPONSIBILITY CS CS_KB_SYS_ADMIN
    Downloaded FND_APPLICATION ICX
    Downloaded FND_APPLICATION FND
    Downloaded FND_RESPONSIBILITY ICX SYSTEM_ADMINISTRATION
    Downloaded FND_APPLICATION PA
    Downloaded FND_RESPONSIBILITY PA PROJECTS SYSTEM ADMINISTRATOR
    Downloaded FND_APPLICATION SYSADMIN
    Downloaded FND_RESPONSIBILITY SYSADMIN XX_SYSADMIN_CUSTOM
    Downloaded FND_RESPONSIBILITY SYSADMIN SYSTEM_ADMINISTRATOR
    Downloaded FND_APPLICATION PV
    Downloaded FND_RESPONSIBILITY PV SYS ADMIN
    Downloaded FND_APPLICATION CSS
    Downloaded FND_RESPONSIBILITY CSS CSS_DEF_SYS_ADMIN_RESP
    Downloaded FND_RESPONSIBILITY CSS CSS_DEF_SYS_ADM
    Downloaded FND_APPLICATION FLM
    Downloaded FND_RESPONSIBILITY FLM SYSTEM_ADMINISTRATOR-71451394
    Downloaded FND_APPLICATION GMA
    Downloaded FND_RESPONSIBILITY GMA OPM_SYSTEMS
    Downloaded FND_APPLICATION IBU
    Downloaded FND_RESPONSIBILITY IBU IBU_SYS_ADMIN
    Downloaded FND_APPLICATION IBY
    Downloaded FND_RESPONSIBILITY IBY IBY_OAUI_ADMIN_SYS_RESP
    Downloaded FND_APPLICATION JA
    Downloaded FND_RESPONSIBILITY JA JAI_SYSADMIN
    Downloaded FND_APPLICATION JTF
    Downloaded FND_RESPONSIBILITY JTF JTF_FM_SYSTEM_MANAGER
    Downloaded FND_APPLICATION MSD
    Downloaded FND_RESPONSIBILITY MSD MSD_EOL_SYSADMIN
    Downloaded FND_RESPONSIBILITY MSD MSD_SOP_SYSADMIN
    Downloaded FND_RESPONSIBILITY MSD MSD_SYSADMIN
    Downloaded FND_APPLICATION XDP
    Downloaded FND_RESPONSIBILITY XDP OP_SYSADMIN
    Downloaded FND_RESPONSIBILITY XDP OP_SYS_ADMIN
    Downloaded FND_APPLICATION XNP
    Downloaded FND_RESPONSIBILITY XNP NP_SYS_ADMIN
    Downloaded FND_RESPONSIBILITY XNP NP_SYSADMIN
    Downloaded FND_APPLICATION AHM
    Downloaded FND_RESPONSIBILITY AHM OHM_SYSTEM_ADMINISTRATOR
    Downloaded FND_APPLICATION CN
    Downloaded FND_RESPONSIBILITY CN CN_INC_SYS_ADMIN
    Downloaded FND_APPLICATION IMT
    Downloaded FND_RESPONSIBILITY IMT IMT_SYSADMIN
    Downloaded FND_RESPONSIBILITY IMT IMT_SYS_MONITOR
    +---------------------------------------------------------------------------+
    Concurrent request completed successfully
    Current system time is 25-MAR-2013 11:48:55
    +---------------------------------------------------------------------------+HTH
    Srini

  • Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Are you on band 13 or band 4?  13 is the original LTE band and remains relatively congested. Band 4 is the XLTE band and is less congested and has higher overall potential bandwidth (15 MHz vs 10 MHz). Even so, 7 Mbps is more than enough for doing stuff on your phone and is not considered slow. 
    To check band,
    dial *3001#12345#*
    select serving cell info
    frequency band will say 13 or 4
    FInd an area with band 4 and retest. 

  • Download & Upload of SAP ABAP Queries.

    Hi All,
    Can anybody please guide How to Download & Upload SAP ABAP Queries.
    Waiting for positive reply.
    Thanks in advance for help.
    Regards,
    MAM

    Program RSAQR3TR is the standard program.
    You can simply download your infoset/query from your source system and upload the  file into your destination system.
    It should works.
    If, for some reason you are not authorized to upload/download, you can create a transport and import it using the usual way.
    Best regards.

  • Download/Upload of  Workflow Business Objects

    Hi experts,
    Do you know if there is a way to download/upload workflow business objects, tasks, events, etc, from a SAP system to a diferent one?
    Thanks in advance,
    Raphael Xavier

    Hi Raphael,
    yes you can download and upload workflows to/ from different systems.
    To do that go to SWDD, Workflow -> Import/Export -> Export to XML file.
    Now in the recipient system, go to SWDD, Workflow -> Import/Export -> Import from XML file.
    There is a limitation to this approach. All customizing chnages like start conditions, etc would not get copied from one system to another, only the basic template is copied (tasks, container etc).
    Best approach is to move the workbench and customizing TRs from one system to another.
    Hope this helps!
    Regards,
    Saumya

  • Dynamic Class Downloading difficulty

    Hi RMI Specialists,
    I am experiencing a possible dynamic class loading issue when attempting to separate the client & server codes across 2 separate Windows (XP & 2000) systems. This exercise (from ch13 of Oreilly�s Learning Java) is made up
    of the following interfaces and classes:
    On the Server side:
    package LearningJavaServer;
    import java.rmi.*;
    import java.util.*;
    public interface RemoteServer extends Remote {
        Date getDate(  ) throws RemoteException;
        Object execute( WorkRequest work ) throws RemoteException;
    package LearningJavaServer;
    import java.rmi.*;
    import java.util.*;
    public class MyServer extends java.rmi.server.UnicastRemoteObject
        implements RemoteServer {
        public MyServer(  ) throws RemoteException { }
        // implement the RemoteServer interface
        public Date getDate(  ) throws RemoteException {
            return new Date(  );
        public Object execute( WorkRequest work ) throws RemoteException {
            return work.execute(  );
        public static void main(String args[]) {
            try {
                RemoteServer server = new MyServer(  );
                Naming.rebind("NiftyServer", server);
            } catch (java.io.IOException e) {
                // problem registering server
    package LearningJavaServer;
    import java.io.*;
    public class Request implements java.io.Serializable {}
    package LearningJavaServer;
    public abstract class WorkRequest extends Request {
        public abstract Object execute(  );
    }On the Client side:
    package LearningJavaClient;
    import java.rmi.*;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    public class MyClient {
        public static void main(String [] args)
          throws RemoteException {
            new MyClient( args[0] );
        public MyClient(String host) {
            try {
                RemoteServer server = (RemoteServer)
                    Naming.lookup("rmi://"+host+"/NiftyServer");
                System.out.println( server.getDate(  ) );
                System.out.println(
                  server.execute( new MyCalculation(2) ) );
            } catch (java.io.IOException e) {
                  // I/O Error or bad URL
                     System.out.println( e );
            } catch (NotBoundException e) {
                  // NiftyServer isn't registered
               System.out.println( e );
    package LearningJavaClient;
    import java.rmi.*;
    import java.util.*;
    public interface RemoteServer extends Remote {
        Date getDate(  ) throws RemoteException;
        Object execute( WorkRequest work ) throws RemoteException;
    package LearningJavaClient;
    public class MyCalculation extends WorkRequest {
        int n;
        public MyCalculation( int n ) {
            this.n = n;
        public Object execute(  ) {
            return new Integer( n * n );
    package LearningJavaClient;
    import java.io.*;
    public class Request implements java.io.Serializable {}
    package LearningJavaClient;
    public abstract class WorkRequest extends Request {
        public abstract Object execute(  );
    }Steps to invoke all services on the server side:
    cd C:\Documents and Settings\htran\JavaRMI\build\classes on both systems;
    ( i ) start rmiregistry.
    ( ii ) java -Djava.rmi.server.codebase='http://serverhostname/LearningJavaServer/' -Djava.security.policy="C:\Documents and Settings\htran\.java.policy" -cp . LearningJavaServer.MyServer
    Steps to invoke all services on the client side:
    ( i ) java -Djava.security.policy="C:\Documents and Settings\htran\.java.policy" -cp . LearningJavaClient.MyClient serverhostname
    java.rmi.NotBoundException: NiftyServer
    Or
    ( ii ) java -Djava.rmi.server.codebase='http://clienthostname/LearningJavaClient/' -Djava.security.policy="C:\Documents and Settings\htran\.java.policy" -cp . LearningJavaClient.MyClient serverhostname
    java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
    java.net.MalformedURLException: no protocol: 'http://clienthostname/LearningJavaClient/'
    Is it possible that this issue could have been caused by either the Request/WorkRequest classes which are present on both system? Likewise, is the location of invoking RMI registry on the server correct?
    Both systems have got their own web servers (http://serverhostname/LearningJavaServer & http://clienthostname/LearningJavaClient).
    No firewalls between the two systems and the security files (C:\Document Settings\htran\.java.policy) are made up of the following 2 lines:
        grant codeBase "file:/home/jones/src/" {
            permission java.security.AllPermission;
        };Another issue that I am having is that the server process below is that it keeps on dropping off after a minute or two:
    C:\Documents and Settings\htran\JavaRMI\build\classes>java -Djava.rmi.se
    rver.codebase='http://clienthostname/LearningJavaClient/' -Djava.security.policy="C:\
    Documents and Settings\htran\.java.policy" -cp . LearningJavaClient.MyClient serverhostname
    This exercise has worked fine when running all the codes on the same host.
    I am running Netbeans 5.5, JDK1.5.0_11 on Windows 2000 (Server) & XP (Client).
    Any assistance would be appreciated.
    Many thanks,
    Henry

    Hi Esmond,
    You still have an empty catch block for the IOException. Fix that first. I >can't possibly tell what's going on until you can at least bind the >service.OK. MyServer.java below no longer throws RemoteExceptions in both of its methods and added the print stacktrace to catch the empty IOException earlier.
    public class MyServer extends java.rmi.server.UnicastRemoteObject
        implements RemoteServer {
        public MyServer(  ) throws RemoteException { }
        public Date getDate(  ) {
            return new Date(  );
        public Object execute( WorkRequest work ) {
            return work.execute(  );
        public static void main(String args[]) {
            System.setSecurityManager(new RMISecurityManager());
            try {
                RemoteServer server = new MyServer(  );
                Naming.rebind("NiftyServer", server);
            } catch (java.io.IOException e) {
                // problem registering server
               System.out.println("IOexception from MyServer");
                e.printStackTrace();
            } catch (Exception e) {
                System.out.println("General Exception from MyServer");
                e.printStackTrace();
    }The following error messages were produced when launching MyServer.class. I have broken it into 2 separate attempts. One with Dynamic Class Downloading & one without.
    Use CodeBase when launches MyServer.
    C:\Documents and Settings\abc\JavaRMI\build\classes>java -Djava.rmi.server.codebase='http://clienthostname/LearningJava/' -Djava.security.policy="C:\Documents and
    Settings\abc\.java.policy" -cp . LearningJava.MyServer
    IOexception from MyServer
    java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: java.net.MalformedURLException: no protocol: 'http://clienthostname/LearningJava/'
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Unknown Source)
    at LearningJava.MyServer.main(MyServer.java:28)
    Caused by: java.net.MalformedURLException: no protocol: 'http://clienthostname/LearningJava/'
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at sun.rmi.server.LoaderHandler.pathToURLs(Unknown Source)
    at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(Unknown Source)
    at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)
    at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source)
    at java.rmi.server.RMIClassLoader.loadClass(Unknown Source)
    at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source)
    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    ... 5 more
    Does NOT use CodeBase when launches MyServer
    C:\Documents and Settings\abc\JavaRMI\build\classes>java -Djava.security.policy="C:\Documents and Settings\abc\.java.policy" -cp . LearningJava.MyServer
    IOexception from MyServer
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: LearningJava.RemoteServer
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
    at sun.rmi.transport.Transport$1.run(Transport.java:153)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    at java.lang.Thread.run(Thread.java:595)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Unknown Source)
    at LearningJava.MyServer.main(MyServer.java:28)
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: LearningJava.RemoteServer
    at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
    at sun.rmi.transport.Transport$1.run(Transport.java:153)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassNotFoundException: LearningJava.RemoteServer
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
    at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
    at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
    at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
    at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294
    at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
    at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    ... 9 more
    I now understand that you do want to use dynamic class loading, and >moreover that you want to do it from the client to the server, in which >case you do need java.rmi.server.codebase at the client and you do >also need a codebase server. However the client and server can both >use the same codebase server, and indeed in this situation I don't >see why the server needs a codebase server or setting at all actually. I >don't really see why you want to use it from the client either, if this is a >closed system but that's your problem not mine.I now use only one codebase server. ie the one on the Client side where MyCalculation.class resides. You are right it is not necessary to use codebase when launching MyServer since the Client side does not need to download any additional classes over to the client side. Nevertheless, neither of the above startups (with/without) codebase worked even though the error messages were slightly different.
    Btw, can you explain what you mean by a "close system" compared to an "opened system"?
    java.net.MalformedURLException: no >protocol: 'http://clienthostname/LearningJava/'
    That doesn't make sense. Are you sure you're transcribing it correctly? >Also what line of code is throwing it?Here is the code for MyClient which explains that the line java.net.MalformedURLException: came from line 32, the printStackTrace() from IOException.
    public class MyClient {
        public static void main(String [] args)
          throws RemoteException {
          System.setSecurityManager(new RMISecurityManager());
            new MyClient( args[0] );
        public MyClient(String host) {
            try {
                RemoteServer server = (RemoteServer)
                    Naming.lookup("rmi://"+host+"/NiftyServer");
                System.out.println( server.getDate(  ) );
                System.out.println(
                server.execute( new MyCalculation(2) ) );    // line 28
            } catch (java.io.IOException e) {
                  // I/O Error or bad URL
                  System.out.println("IOException from MyClient");
               e.printStackTrace();
            }  catch (NotBoundException e) {
                  // NiftyServer isn't registered
                  System.out.println("NotBoundException from MyClient");
               e.printStackTrace();
            } catch (Exception e) {
                  System.out.println("General Exception from MyClient");
                  e.printStackTrace();
    }I wouldn't pay much attention to this message since the MyServer has difficulty registering itself to RMI registry. As a result, MyClient could not
    locate MyServer via RemoteServer interface before giving up altogether.
    Unfortunately, I have not being able to create an interface (e.g. >MyCalculation.class as an interface, MyCalculationImpl.class as the >actual implementation of MyCalculation) since WorkRequest is an >abstract class, which does not allow MyClient to instanciates >MyCalculation on line 28.
    I don't see why not. What error messages/exceptions are you getting?
    Are you referring to the execute() method on line 13 in >RemoteServer.classNo, I am referring to line 28 of MyClient.class above after the following failed attempts to create an interface for MyCalculation.java:
    public interface MyCalculation extends WorkRequest { // Got a syntax error: interface expected here in Netbeans.
    } Or
    public interface MyCalculation {}
    public class MyCalculation extends WorkRequest extends MyCalculation { ... # Obviously cannot extend more than one class.Any suggestion?
    No. I said the remote method implementation (i.e. in your xxxImpl >class) doesn't need to be declared to throw RemoteException. The >remote method definition in the remote interface certainly does. I have taken out the RemoteException from 2 methods in MyServer.java. ie implementation of the RemoteServer.java.
    In short, I have used only one codebase server but puzzled whether MyCalculation.class (have split it up into interface & implementation) will be passed over to the
    server side by referenced, value or Dynamic Class Downloading. I do not want it to use Dynamic Class Downloading to do this.
    Thanks,
    Henry

Maybe you are looking for

  • Purple for video missing when syncing with itunes??

    just had an upgrade to new 3g iphone which was faulty. apple replaced it today and i did a restore. now when im syncing my itunes library to it the colours showing what is being used at the bottom of itunes (ie music,video,photos and other) have main

  • What is the meaning of java:comp/env in (?java:comp/env/jdbc/mssql?) ?

    I know that we are suppose to give jndi names starting with jdbc/ But i have a sun book in which they created a jndi with jdbc/ejbUserAccount and later referred it with "java:comp/env/jdbc/UserAccountDB" also in this blog this guy has done the same .

  • Daily show not showing up? Yes, i'm checking for purchases.

    I purchased a multipass for the Daily Show for the second time (the first time it worked great), but this time, this week I haven't recieved any of the episodes. When I check for purchases it tells me i have all the episodes downloaded. I'm assuming

  • ABAP simple question

    Hello everyone, I have a question. In my Z program I have a zprogramname_top where my variables/tables are defined and a zprogramname_f01 where i make calculations. in f01, i call another form where I fill a table, but when I retunr to the calling pe

  • Symbol fonts in ADE

    Hi. Why the symbol fonts do not show up in ADE? I created an epub file from Indesign with embedded fonts. The garamond and helvetica fonts show up fine, but dingbats and symbol fonts are not. The same is viewed fine in Sigil and on iBooks (when i rem