Download and upload the solution

Dear Experts
I'd like to copy the customer specific solution from my tenant to other tenants.
But, I can't copy the solution due to an error below.
Is it possible to upload and download the solution between different customer ID?
Best regards,
Ryota Ichida

Hello Ryota, Dhruvin,
Yes, that's right.
Here's an excerpt from the docu:
What you can't do with a solution template
You can't switch on the admin mode for a solution template.
Therefore you can't, for example, define analytics content or create a mashup in a solution template.
You can't create BC sets using SAP BCOs in a solution template.
If you create a business object extension in a solution template, you can't use the following functions:
Enhance Enterprise Search
Enhance Forms
Enhance Report
Enhance Screen
HTH,
    Horst

Similar Messages

  • PO header attachment download and upload

    Hi All,
    I have requirement to download the attachments attached at Purchase Orders(PO) header level . And then from the downloaded file , I further want to upload it to another target system.
    I have already uploaded the PO at target system but header level attachments were missed out.
    My source and target system is in Ver 4.6C
    Please let me know -
    1. All tables that are involved in storing the attachments at header level for purchase orders.With this I can upload attachments directly to the target system tables.
    2.Any Function module for download and upload the attachments of PO at header level.
    I will appreciate any help to do this .
    Thanks
    Deepak

    Hi ,
    Thanks for suggestion.I Have used FM SO_ATTACHMENT_INSERT to insert Attachment. SOOD table is getting updated. But still PO header level attachment is missing. I think FM only update the table SOOD and do not ensure to put the attachment to the right Purchase order.
    Please let me know if you have an Idea how to put attachments to PO header level.Let me know tables that can be directly updated in order to attach the attachment to PO header level.
    Thanks
    Deepak

  • Download and Upload smartform in 4.6c

    I have the requirement to download and upload the smartforms in 4.6c. I need the help, which standard function module will solve the problem.
    Thanks .
    Vinayak.

    Hi,
    Use Transaction "Smartforms" -->Enter Smartform Name
    -> Utilities> Download form
    This will down load smartform in XML format.
    Use the Utilities--> Upload for upload the form .
    Please sure the upload file is in XML format.
    Hope this will help you.
    Lanka

  • How to download  and upload a module pool program ?

    hi i am a sudent.can anyone suggest me how to download and upload a module pool program?
    Moderator message: please search for available information/documentation.
    Edited by: Thomas Zloch on May 29, 2011 12:45 PM

    Hi,
    You cannot just download and upload module pool programs .
    There are 2 different ways.
    1. Copy all the includes and and create the same in the target system. You can download and upload the the Screen.
      But GUI status you have to manually create.
    2. If you have completely saved the module-pool program in one Workbench request(including Z tables u have used) in the original system ,just  release the workbench request and copy the data file and co file and upload to the target system ( use CG3Y & CG3Z).
    If the workbench is a Local Request save it in a Transport of copies and then move.
    Regards
    Aromal R

  • After hours of back-up, downloading and uploading...I am now updated with all the latest Mac software. However, I no longer have access to Excel and Word. Is there a way I can access my documents in either of those? Help, please.

    After hours of back-up, downloading and uploading...I am now updated with all the latest Mac software. However, I no longer have access to Excel and Word. Is there a way I can access my documents in either of those? Help, please.

    If you have older versions of excel and word that previously ran under the Rosetta emulator (allows PowerPC code to run on Intel system), they will no longer work with Lion.
    You can use the Apple programs Pages and Numbers to access the files. They can be bought and downloaded from the App store. NeoOffice is available at http://www.neooffice.org/neojava/en/index.php which has Lion support. OpenOffice doesn't talk to Lion support, it's at http://www.openoffice.org/

  • Function module to choose the file for download and upload

    what is the function module to choose the file for download and upload  for presentation server.
    give me with example

    Please search in SCN.
    This has been discussed so many times.

  • I have the Jetpack 4GLTE, what is the Mbps download and upload speeds for this device?

    I have the Jetpack 4GLTE, what is the Mbps download and upload speeds for this device?

    The avgrage real speed will be more in the area of 25 to 38 Mbps  You would need to be in a strong signal area with high grade cell tower service and low customer use to even reach 50 Mbps. 
    From Verizon page.  Just be aware that using the MiFi 6620L can cost a lot of money. And you can thank the device's fast performance for that. In my testing around the San Francisco Bay Area, rathe device delivered blazing-fast download speeds that nged between around 10Mbps to around 40Mbps. At those speeds, you can burn through 4GB of data in just less than an hour. Once you reach the cap, of course, you'll have to pay somewhere between $10 to $15 for each additional gigabyte, depending on the plan you sign up for. 
      For more information follow link:  Verizon Ellipsis Jetpack MHS800L | Verizon Wireless

  • Download and upload of file to server dir (AL11)

    Hello,
    I have a custom program that is downloading files from application server directory (they are like templates) to user local pc. User is then modifying such files and finally upload them in another AS directory.
    The program is currently making use of FM's C13Z_FILE_DOWNLOAD_BINARY and  C13Z_FILE_UPLOAD_BINARY.
    There was no problem until hot packages have been implemented: now such FM's are returning an error saying:
    Internal program error; (YDOWNLOAD SAPLC13Z 0 C13Z_RAWDATA_WRITE)
    When in debug, it appears that the FM C13Z_RAWDATA_WRITE (called by the above mentioned FM's) is checking the calling program (sy-cprog) and if this latter is not within a list of standard programs (hardcoded), then the error is thrown.
    My question is: Is there another way to download and upload files without such error? Could you please share the code?
    Thanks a lot for help and suggestions!
    Best regards,
    JFlanders

    Hello,
    Please see note   1809258 - Internal program error; ( <program name> SAPLC13Z 0 C13Z_RAWDATA_READ )
    A possibile solution is to use cl_gui_frontend_services class methods like gui_download and gui_upload, for instance:
    TYPES: t_line(1) type x.
    DATA: i_tab TYPE STANDARD TABLE OF t_line,
        i_wa(1) type x.
    OPEN DATASET lv_file_appl FOR INPUT IN BINARY MODE.
    DO.
      CLEAR i_wa.
      READ DATASET lv_file_appl INTO i_wa.
      IF SY-SUBRC <> 0.
        EXIT.
      ELSE.
        APPEND i_wa TO i_tab.
      ENDIF.
    ENDDO.
    CLOSE DATASET lv_file_appl.
    DATA: lv_fn TYPE string.
    lv_fn = lv_file_name.
    CALL METHOD cl_gui_frontend_services=>gui_download
      EXPORTING
        filename                = lv_fn
        filetype                = 'BIN'
        append                  = ' '
      CHANGING
        data_tab                = i_tab
      EXCEPTIONS
        file_write_error        = 1
        no_batch                = 2
        gui_refuse_filetransfer = 3
        invalid_type            = 4
        no_authority            = 5
        unknown_error           = 6
        header_not_allowed      = 7
        separator_not_allowed   = 8
        filesize_not_allowed    = 9
        header_too_long         = 10
        dp_error_create         = 11
        dp_error_send           = 12
        dp_error_write          = 13
        unknown_dp_error        = 14
        access_denied           = 15
        dp_out_of_memory        = 16
        disk_full               = 17
        dp_timeout              = 18
        file_not_found          = 19
        dataprovider_exception  = 20
        control_flush_error     = 21
        OTHERS                  = 24.
    * old functioanlity
    *    CALL FUNCTION 'C13Z_FILE_DOWNLOAD_BINARY'
    *      EXPORTING
    *        i_file_front_end       = lv_file_name
    *        i_file_appl            = lv_file_appl
    *        i_file_overwrite       = 'X'
    ** IMPORTING
    **    E_FLG_OPEN_ERROR          =  false
    **    E_OS_MESSAGE              =  lv_message
    *    EXCEPTIONS
    *      fe_file_open_error       = 1
    *      fe_file_exists           = 2
    *      fe_file_write_error      = 3
    *      ap_no_authority          = 4
    *      ap_file_open_error       = 5
    *      ap_file_empty            = 6
    *      OTHERS                   = 7
    This is for the download, similarly should be done for the upload.
    Hope this could help. Let me know if further details are needed.
    Thank you and bye,
    Flavio

  • Downloading and Uploading ABAP programs

    I need to move a new GUI program (including all screens, include, subroutines, etc.) that was developed on our SAP 4.5 system to our new, upgraded, ECC 6.0 system.
    There is an old ABAP program that we use to use called ZSABAPUPDOWNLOAD, but it no longer seem to work between these two SAP versions.
    Because of the version differences between these tow systems, our BASIS group does not want us to use a transport to move this code.
    Other than completely recreating this program on the ECC60 system, does anyone know of a program (like the old ZSABAPUPDOWNLOAD) or utility that I could use to transfer this program to the new system?

    welcome to SDN.
    is this the program do u have.
    if not check it with this.
    REPORT ZUPDOWNPROGRAMS LINE-SIZE 132 LINE-COUNT 62 NO STANDARD PAGE HEADING.
      This program up / downloads from / to a local dataset
      all the components of an ABAP - i.e TEXTS, the entire CUA
      including statuses and menus, DYNPROS and source code.
      Program documentation and variants are not handled.
      INCLUDED programs are automatically handled both on upload
      or download. INCLUDE selection can be excluded or generic
      e.g only handle INCLUDES starting with ZIN*
      INCLUDES within INCLUDES also handled.
      The only restriction is on UPLOAD the INCLUDED programs must come
      from the same directory as the main program.
      On Download of course the ABAP must exist in the library.
         Note for LINUX and BATCH users
      This program was originally designed as a one off tool for
      getting ABAPS etc from a SAP R2 (IBM MVS mainframe system) into
      an R3 test system minimising the need for a large amount of
      mainframe sysprogs (anybody remember what they were !!) time
      and support to say nothing of access problems from TSO /JES2 /
      SAP R2. At that time network connections were patchy and the
      transport systems largely incompatable and not very reliable.
      This program was originally designed as a one off tool for
      Must run on Windows front end ---- If you are running SAP with
      LINUX on your work station you will have to change the WS_UPLOAD
      and WS_DOWNLOAD functions to reflect the Linux file system. The
      contents of the data sets themseleves do not need to be changed
      Program can easily be modified to run in batch and store
      the data on a UNIX host. Change the WS_UPLOAD and WS_DOWNLOAD
      to read from and write to UNIX data sets (OPEN FILE etc).
      You will also need to modify the parts of the program that get
      the DOS directory and display the Windows file paths.
      The actual abap data sets do not need to be changed.
    Rel 4.0   names can now be up to 40 bytes long
              Dynpros and CUA have changed from rel 3.1
              Tabstrips now loaded and unloaded in dynpros
       Please note restriction on 4.6 systems for users who
       have ABAP names which include '/'s in their names.
    Rel 4.6b, 4.6c Abap names can include the '/' in their names
    e.g /CUST1/CUST2/ORDER
    This causes problems when storing to a local file.
    a solution is to change the name to %CUST1%CUST2%ORDER i.e / will
    be changed to %. On upload the % should be changed back to /
    again.    This change still needs to be implemented.
    If you don't use the / in the abap name then this is not a problem.
    If file to be uploaded is in rel 3 format then names are only 8
    bytes long.
      program uses 3 datasets per abap
         1) abapname.eee     source, dynpr logic, texts, CUA stuff
         2) abapname.hhh     dynpr header
         3) abapname.fff     dynpro fields.
    because of varying lengths and contents 3 data sets are used. The
    complexity of combining all these to 1 data set would make the
    program far too complex.
      NOTE: This version of the program can only be used on
            release 4.0 or higher. Once an ABAP has been converted
            to rel 4.0 it cannot be converted back to rel 3.0
            on a release 3/3.1 system. Release 4 CUA tables
            are different.  Use release 3 version of this program
           for releases 3.0 and 3.1. Available on SAPFANS website.
      Note that data to be uploaded must have been previously downloaded
      by this program (any version since rel 2.0) - except for Initial
      Load -- see end of these comments.
             Dynpros and CUA statuses have changed since rel 3.1
       This program will handle rel 3.1 format on upload but will
       download in rel 4.0 format. To upload 3.1 format specify an 'X'
       in the rel3 parameter.
       If you have downloaded components in rel 4.0 format and you
       want to re-load to a 3.1 system  you will have to load
       the source via standard upload and re-create dynpros and the CUA
       manually.
       As names can now be longer than 8 characters you can only
       use this program if the SAP front end (SAPGUI) supports
       long file names (WIN 95/98 or WIN NT). Windows 3.x will not
       work as the underlying DOS system cannot handle long file names.
          UPLOAD function and DOS directory.
    When an ABAP is selected for UPLOAD then the DOS
    directory is read into a table. A file called ABAP.BAT is created,
    and down loaded to the 'C' drive and executed.
    This file executes a DOS DIR command and pipes the output
    into a dataset which is then uploaded into an internal
    table on SAP.
    Note on running DOS commands from ABAP
    The first time this procedure is executed you will see a DOS window
    which you will have to close manually. To get round this
    use windows explorer to select the file ABAP.BAT and then
    right mouse click on the file name. Select the
    properties window. From this click the CLOSE on EXIT box. This
    will then automatically close the DOS function after it has
    executed. (Windows restriction).
    The DOS function has not been tested using Windows 2000 so
    it might not work. OK on W95,W98,WME and Windows NT (No Thanks)
    If INCLUDE programs are wanted on UPLOAD only the specified
    directory is searched.
    Instead of entering path name manually you can click on
    the path parameter. Because of Windows restriction you will
    have to select ANY file in the relevant directory.
    The path will then be copied on to the selection screen.
    To do still : Merge 3 files to one and compress output to .ZIP file
                   fix 4.5 4.6 problem of abaps containing '/' in the name
                   possibility to automatically up / download referenced
                   function modules with selection criteria like INCLUDES
    To load the ist time into a system.
    Create program with ABAP editor and Upload the .EEE file.
    Delete ist line  (????SRCE) in the ABAP EDITOR --NOT THE DISK FILE
    Delete all the source from the line that starts ????TEXT (towards
    the end file) till the end so the last line in your source is ENDFORM.
    DO NOT ALTER THE DISK FILE. DO THESE CHANGES IN THE ABAP EDITOR.
    Save file and execute
    Use following parameters (Note the ist time you won't get proper
    text on the selection screen).
    Function      U
    Path          full dos path containing source e.g c:\abaps\
                   NOTE YOU MUST ENTER THE FINAL \ as above.
    REPID         the program name. e.g ZZJIMHXX
                   note that on the DISK you will see 3 files
                   ZZJIMHXX.EEE, ZZJIMHXX.FFF, ZZJIMHXX.HHH
                   just use the name before the dos qualifier - the
                   program will do the rest
    ignore other parameters
    The program will then load itself with all the texts etc.
    It should now be ready for use.
      Macros
    DEFINE DEFINE_TABLE.
      DATA: &1 LIKE &2 OCCURS &3 WITH HEADER LINE.
    END-OF-DEFINITION.
    DEFINE CLS.
      REFRESH &1.
      CLEAR &1.
    END-OF-DEFINITION.
    DEFINE INIT.
      IF &1 NE SPACE.
        SEARCH &1 FOR '. .'.
        IF SY-SUBRC = 0.
          WRITE '*' TO &1+SY-FDPOS(1).
        ENDIF.
        TRANSLATE &1 USING '*%'.
      ELSE.
        MOVE '%' TO &1.
      ENDIF.
    END-OF-DEFINITION.
    end of macros
    /     SAP standard tables                                        */
    TABLES: D020S,                         "Dynpro header
            D020T,                         "Dynpro title
            D021T,                         "Screen field keyword texts
            TRDIR,                         "Attribute table
            TADIR,                         "Dev. class etc.
            EUDB,                          "CUA data
            TSTC,                          "transaction data
            TITLE,                         "CUA titles
            RSMPTEXTS.                     "Function texts (rel 4.0)
    /     Work tables to hold ABAP source etc, and dynpro            */
    /     contents.                                                  */
    DATA: BEGIN OF H.                      "Header
            INCLUDE STRUCTURE D020S.
    DATA: END OF H.
    DATA: BEGIN OF H1 OCCURS 10,           "Header
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D020S.
    DATA: END OF H1.
    DATA: BEGIN OF H2 OCCURS 0,            "Rel 3  dynp. header
            CNAME(8)   TYPE C,
            CNUM(4)    TYPE C,
            NNAME(8)   TYPE C,
            NNUM(4)    TYPE C,
            FILL(51)   TYPE C,
            CDAT(6)    TYPE C,
            CTIM(6)    TYPE C,
          END OF H2.
    DATA: BEGIN OF F OCCURS 250.           "Dynpro Fields
            INCLUDE STRUCTURE D021S.
    DATA: END OF F.
    DATA: BEGIN OF F1 OCCURS 500,          "Dynpro Fields
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D021S.
    DATA: END OF F1.
    DATA: BEGIN OF OLD_F1 OCCURS 0,        "Dynpro Fields (rel 3)
          NAME(8)    TYPE C,
          NUMBER(4)     TYPE C.
            INCLUDE STRUCTURE D021SE_OLD.
    DATA: END OF OLD_F1.
    DATA: BEGIN OF F2 OCCURS 0,            "Dynpro Fields (rel 3)
          TFIL(284)  TYPE C,
          END OF F2.
    DATA: BEGIN OF M OCCURS 3.             "Match codes (if any)
            INCLUDE STRUCTURE D023S.
    DATA: END OF M.
    DATA: BEGIN OF E OCCURS 0.             "Dynpro Logic
            INCLUDE STRUCTURE D022S.
    DATA: END OF E.
    DATA: BEGIN OF E1 OCCURS 0,            "Dynpro Logic
          NAME(40)               TYPE C,                        "rel 4
          NUMBER(4)              TYPE N.
            INCLUDE STRUCTURE D022S.
    DATA: END OF E1.
    DATA: BEGIN OF T   OCCURS 0,           "prog name and dynpro nrs
          NAME(40)     TYPE C,                                  "rel 4
          NUMBER(4)    TYPE N,
    END OF T.
    DATA: BEGIN OF R   OCCURS 56,          "prog name and language
          NAME(40)     TYPE C,                                  "rel 4
          LANGUAGE(1)  TYPE C,
       END OF R.
    DATA: BEGIN OF S OCCURS 3000,
          TXT(180)               TYPE C,   "rel 4   was 132
          END OF S.
    DATA: BEGIN OF R1 OCCURS 50,           "for include programs
            NAME(40)             TYPE C,                        "rel 4
            INSTANCE(3)          TYPE P,
          END OF R1.
    DATA: BEGIN OF S1 OCCURS 3000,
          TXT(180)               TYPE C,   "   rel 4  was 132
          END OF S1.
    DATA: BEGIN OF U OCCURS 100,           "Text elements
          TXT(180)               TYPE C,   " rel 4   was 132
          END OF U.
    DATA: BEGIN OF DIR.                    "ABAP Attributes
            INCLUDE STRUCTURE TRDIR.
    DATA: END OF DIR.
    DATA: BEGIN OF DTXT.                   "Dynpro field keyword texts
            INCLUDE STRUCTURE D021T.
    DATA: END OF DTXT.
    /     This data contains all the components of the               */
    /     CUA such as menus, statuses, Pfkeys                        */
    /     As from rel 4.5 Tabstrips are automatically copied as well */
    /     The rel3 parameter must be set however to load the         */
    /     correct version of the CUA tables if uploading rel 3       */
    /     data to a rel 4 system.                                    */
    /     Rel 4.0B can  convert 3.1 and earlier CUA's                */
    /     This could change later however.                           */
    CUA Tables.
    Key of CUA tables in EUDB data set. Name is len 40 in rel 4.0
    DATA BEGIN OF EU_KEY.
            INCLUDE STRUCTURE RSEU1_KEY.
    DATA END OF EU_KEY.
        Status
    DATA BEGIN OF STA OCCURS 0.
            INCLUDE STRUCTURE RSMPE_STAT.                       " rel 4
    DATA END OF STA.
        Functions
    DATA BEGIN OF FUN OCCURS 0.
            INCLUDE STRUCTURE RSMPE_FUNT.                       "rel 4
    DATA END OF FUN.
        Menus
    DATA BEGIN OF MEN OCCURS 0.
            INCLUDE STRUCTURE RSMPE_MEN.   "rel 4.0
    DATA END OF MEN.
        Menus (texts)
    DATA BEGIN OF MTX OCCURS 0.
            INCLUDE STRUCTURE RSMPE_MNLT.  "rel 4.0
    DATA END OF MTX.
        Action Bar
    DATA BEGIN OF ACT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_ACT.   "rel 4.0
    DATA END OF ACT.
        Push Buttons
    DATA BEGIN OF BUT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_BUT.   "rel 4.0
    DATA END OF BUT.
        PF-Keys
    DATA BEGIN OF PFK OCCURS 0.
            INCLUDE STRUCTURE RSMPE_PFK.   "rel 4.0
    DATA END OF PFK.
        Function sets
    DATA BEGIN OF SET OCCURS 0.
            INCLUDE STRUCTURE RSMPE_STAF.  "rel 4.0
    DATA END OF SET.
        Documentation
    DATA BEGIN OF DOC OCCURS 0.
            INCLUDE STRUCTURE RSMPE_ATRT.  "rel 4.0
    DATA END OF DOC.
        Title codes with text
    DATA: BEGIN OF TIT OCCURS 0.
            INCLUDE STRUCTURE RSMPE_TITT.  "rel 4.0
    DATA: END OF TIT.
    DATA BEGIN OF FTX OCCURS 0.            "rel 4.0
            INCLUDE STRUCTURE RSMPTEXTS.
    DATA END OF FTX.
           rel 3.1 CUA components.
        Status
    DATA BEGIN OF OLD_STA OCCURS 0.
            INCLUDE STRUCTURE RSEU1_GEN.   " rel 3.1
    DATA END OF OLD_STA.
        Functions
    DATA BEGIN OF OLD_FUN OCCURS 0.
            INCLUDE STRUCTURE RSEU1_FUN.   "rel 3.1
    DATA END OF OLD_FUN.
        Menus
    DATA BEGIN OF OLD_MEN OCCURS 0.
            INCLUDE STRUCTURE RSEU1_MEN.   "rel 3.1
    DATA END OF OLD_MEN.
        Menus (texts)
    DATA BEGIN OF OLD_MTX OCCURS 0.
            INCLUDE STRUCTURE RSEU1_TXM.   "rel 3.1
    DATA END OF OLD_MTX.
        Action Bar
    DATA BEGIN OF OLD_ACT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_ACT.   "rel 3.1
    DATA END OF OLD_ACT.
        Push Buttons
    DATA BEGIN OF OLD_BUT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_BUT.   "rel 3.1
    DATA END OF OLD_BUT.
        PF-Keys
    DATA BEGIN OF OLD_PFK OCCURS 0.
            INCLUDE STRUCTURE RSEU1_PFK.   "rel 3.1
    DATA END OF OLD_PFK.
        Function sets
    DATA BEGIN OF OLD_SET OCCURS 0.
            INCLUDE STRUCTURE RSEU1_SET.   "rel 3.1
    DATA END OF OLD_SET.
        Documentation
    DATA BEGIN OF OLD_DOC OCCURS 0.
            INCLUDE STRUCTURE RSEU1_ETM.   "rel 3.1
    DATA END OF OLD_DOC.
        Title codes with text
    DATA: BEGIN OF OLD_TIT OCCURS 0.
            INCLUDE STRUCTURE TITLE.       "rel 3.1
    DATA: END OF OLD_TIT.
    dynamic function text
    DATA BEGIN OF FDN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_FDYN.  "not req for rel 4.
    DATA END OF FDN.
    Icons
    DATA BEGIN OF FIN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_ICON.  "not req for rel 4
    DATA END OF FIN.
    dynamic menu texts
    DATA BEGIN OF MDN OCCURS 1.
            INCLUDE STRUCTURE RSEU1_MDYN.  "not req for rel 4.
    DATA END OF MDN.
        Symbol list
    DATA BEGIN OF SYM OCCURS 0.
            INCLUDE STRUCTURE RSEU1_SYMB.
    DATA END OF SYM.
        Status Short text
    DATA BEGIN OF STX OCCURS 0.
            INCLUDE STRUCTURE RSEU1_CTX.
    DATA END OF STX.
        Attributes for function key settings (menu bars)  Rel 3.0
    DATA BEGIN OF ATT OCCURS 0.
            INCLUDE STRUCTURE RSEU1_HAT.
    DATA END OF ATT.
        Include-Menus
    DATA BEGIN OF INC OCCURS 3.
            INCLUDE STRUCTURE RSEU1_INC.
    DATA END OF INC.
    Last used numbers
    DATA BEGIN OF LAST.
            INCLUDE STRUCTURE RSEU1_LST.
    DATA END OF LAST.
      data for call transaction (SE41 to re-generate the CUA)
    DATA: BEGIN OF T_BDC_TAB OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.     "BDC data
    DATA: END OF T_BDC_TAB.
    DATA: BEGIN OF T_MESSTAB OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF T_MESSTAB.
    /     Program data                                               */
    DATA: NUMBER(4)               TYPE N,
          OLDNUM(4)               TYPE N,
          FILESIZE                TYPE I,
          NR_OF_BYTES             TYPE I,
          I(3)                    TYPE P,
          IX(3)                   TYPE P,
          J(3)                    TYPE P,
          L(3)                    TYPE P,
          CUA-FLAG(1)             TYPE C,
          CUA_RETURN(10)          TYPE C,
          DYNPRO_MESSAGE(160)     TYPE C,
          DYNPRO_LINE             TYPE P,
          DYNPRO_WORD(30)         TYPE C,
          NUM(3)                  TYPE N,
          DYNNAME(44)             TYPE C,
          FN1(128)                TYPE C,
          FN2(128)                TYPE C,
          FN3(128)                TYPE C,
          W_ITERATE(1)            TYPE C,
          MAIN(1)                 TYPE C,
          FUNC(1)                 TYPE C,
          OLDNAME(40)             TYPE C,
          OLD-FUNC(8)             TYPE C,
          NEW-FUNC(8)             TYPE C,
          FOUND(1)                TYPE C,
          LANGUAGE                LIKE SY-LANGU,
          FIRST-TIME(1)           TYPE C VALUE 'Y',
          OK-CODE(5)              TYPE C,
          NAME(40)                TYPE C,                       "rel 4
          TXLINE(70)              TYPE C,
          LINE(132)               TYPE C.
    DATA:
          UL_FILE(128)          TYPE C,
          DL_FILE(128)          TYPE C,
          DOSLINE(72)           TYPE C.
    DATA: BEGIN OF DOSDIR OCCURS 0,
            TEXT(72),
          END OF DOSDIR.
    DATA: BEGIN OF I_PROG OCCURS 0,
          NAME(40),
          END OF I_PROG.
    DATA: BEGIN OF I_PROGT OCCURS 0,
          NAME(40),
          END OF I_PROGT.
    DATA: BEGIN OF I_INCLUDE OCCURS 0,
          NAME(40),
          HANDLED(1)   TYPE C,
          END OF I_INCLUDE.
    DATA: BEGIN OF I_INCL OCCURS 0,
          NAME(40),
          END OF I_INCL.
    DATA: BUFFER(1024).
    DATA: WINSYS(3).
    DATA: GLOBAL_FILEMASK_MASK(20), GLOBAL_FILEMASK_TEXT(20).
    DATA: GLOBAL_FILEMASK_ALL(80).
    DATA: T_FILENAME(128),
          TMP_FILENAME(128),
          T_MODE(1),
          FIELDLN     TYPE I.
    DEFINE_TABLE I_DYNPFIELDS DYNPREAD 0.  "dynpro fields to be updated
    DATA: I_FLDS LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE.
    FIELD-SYMBOLS: <F>.
    /     Parameters                                                 */
    SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 1.
    SELECT-OPTIONS REPID FOR TRDIR-NAME OBLIGATORY .
    PARAMETERS:
          FUNCTION(1)       TYPE C OBLIGATORY,  "Function
          DSNAME(40)        TYPE C,        "Data set name
          INCLUDES(1)       TYPE C DEFAULT 'N', "Resolve Includes
          IMASK(40)         TYPE C,        "Include Mask
          CLASS             LIKE TRDIR-CLAS,
          AUTHOR            LIKE TRDIR-CNAM,          "Author
          APPL              LIKE TRDIR-APPL,
          PATH(88)          TYPE C DEFAULT 'A:\',
          REL3(1)           TYPE C.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-004.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-005.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-002.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(70) TEXT-003.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END  OF BLOCK A1.
    /          Check users workstation is running WINDOWS,        */
    /          WINDOWS 95, or WINDOWS NT. OS/2 no good for        */
    /          this application.                                  */
    CALL FUNCTION 'WS_QUERY'
         EXPORTING
              QUERY  = 'WS'
         IMPORTING
              RETURN = WINSYS.
    IF WINSYS(2) NE 'WN'.                  "Win 3.X no good either
      WRITE: / 'Windows NT or Windows 95/98 is required'.
      EXIT.
    ENDIF.
    /          Get names of programs to be handled.               */
    /          Name can be a single value, many values or ranges  */
    /          as per standard SELECT-OPTIONS on selection screen */
    / On Download read TRDIR and store program names in a table   */
    / as per selection options.                                   */
    / On upload read the specified directory for all files of     */
    /  type .EEE from specified directory                         */
    /  compare file names with selection criteria                 */
    MOVE FUNCTION TO FUNC.
    MOVE 'Y' TO MAIN.
    CASE FUNC.
      WHEN 'U'.                            "Upload required
        PERFORM READ_DOS_DIRECTORY.
        PERFORM GET_RANGE_UL.              "Get list of progs to process
      WHEN 'D'.                            "Download required
        PERFORM GET_RANGE_DL.              "Get list of progs to process
      WHEN OTHERS.
        WRITE: / 'Function not performed due to user request'.
        EXIT.
    ENDCASE.
    SORT I_PROG.
    DELETE ADJACENT DUPLICATES FROM I_PROG.
    For download INCLUDE handling can be resolved via function
    module call.
    All Includes within Includes are also resolved by the function
    module call.
    Note that this method does not work if program itself is of type
    I (it's an include)
    In this case we can still search the source.
    IF FUNC = 'D'.
      IF INCLUDES = 'Y'.
        PERFORM GET_INCLUDES_DL.
        PERFORM PROCESS_INCLUDES_DL.
      ENDIF.
    ENDIF.
    Program list from selection criteria i.e excluding INCLUDES found
    LOOP AT I_PROG.
      MOVE I_PROG-NAME TO R1-NAME.
      APPEND R1.
      DESCRIBE TABLE R1 LINES I.
      WHILE I NE 0.
        PERFORM EXECUTE-FUNCTION.
      ENDWHILE.
      REFRESH R1.
    ENDLOOP.
    We need to check now for INCLUDES on DOWNLOAD when the INCLUDE
    program itself is of type I. In this case the function call
    will not return the INCLUDES. For example we could be
    downloading ZTESTTOP (an Include itself) which as an include
    ZTEST01.
    The process fortunately is the same as the UPLOAD function
    except of course we need to read the library instead of the
    DOS directory
    process INCLUDE modules for Upload
    On upload the procedure is more complex as Includes within
    Includes can only be resolved by scanning the code and
    searching if the program exists in the directory.
    To get all INCLUDES within INCLUDES entries in table I_INCL
    that do not exist in I_INCLUDE are copied to table I_INCLUDE
    after each entire pass of table i_INCLUDE and table is then
    re-looped through. Programs in table I_INCLUDE that have already
    been processed have a "Y" indicator set in I_INCLUDE-AVAIL.
    if  func = 'U'.
    IF INCLUDES = 'Y'.
      DESCRIBE TABLE I_INCL LINES I.
      IF I > 0.
        W_ITERATE = 'Y'.
      ELSE.
        W_ITERATE = ' '.
      ENDIF.
      WHILE W_ITERATE = 'Y'.
        PERFORM PROCESS_INCLUDES_UL.
        PERFORM LOOP_THROUGH.
        DESCRIBE TABLE I_INCL LINES I.
        IF I > 0.
          W_ITERATE = 'Y'.
        ELSE.
          W_ITERATE = ' '.
        ENDIF.
      ENDWHILE.
    endif.
    ENDIF.
    DESCRIBE TABLE I_INCLUDE LINES I.
    IF I > 0.
      SKIP 1.
      WRITE: / ' Included Programs found'.
      SKIP 1.
      LOOP AT I_INCLUDE.
        WRITE I_INCLUDE-NAME TO LINE(40).
        CONDENSE LINE.
        WRITE: / LINE(80).
      ENDLOOP.
    ENDIF.
    /       Table R contains ABAP names to up / download.            */
    /       Loop through table R and perform up / download           */
    /       for each program.                                        */
    /       Table R1 contains INCLUDE names found (if any)           */
    /       As each                                                  */
    FORM EXECUTE-FUNCTION.
      LOOP AT R1.
        MOVE-CORRESPONDING R1 TO R.
        APPEND R.
      ENDLOOP.
      REFRESH R1.
      LOOP AT R.
        REFRESH : T, E1, H1, F1, S, U.
        PERFORM PROCESS.
        MOVE 'N' TO MAIN.
      ENDLOOP.
      REFRESH R.
      DESCRIBE TABLE R1 LINES I.
    ENDFORM.
    /     Build file names for UP/DOWNLOAD                           */
    /     3 files are generated per ABAP.                            */
    /       1) ABAP    Path\PROGNAME.EEE (ABAP, Attr,Texts)          */
    /          Logic   Path\PROGNAME.EEE (Dynpro Source Logic)       */
    /          CUA     Path\PROGNAME.EEE (CUA components - keys etc) */
    /       2) Header  Path\PROGNAME.HHH (Dynpro Header)             */
    /       3) Fields  Path\PROGNAME.FFF (Dynpro Field definitions  )*/
    / ( If alternate file name specified -DSNAME- this will          */
    /   be used instead. This is only valid for the main program.    */
    /   INCLUDED programs will have file names as specified          */
    /   above).                                                      */
    /  By using this scheme it saves the user from having to         */
    /  be prompted for 3 file names.                                 */
    /  If you want multiple copies / versions on disk either         */
    /  rename the old versions or specify a different directory in   */
    /  the path parameter.                                           */
    FORM PROCESS.
      MOVE PATH TO FN1.
      CASE MAIN.
        WHEN 'Y'.
          IF DSNAME NE SPACE.
            WRITE DSNAME TO FN1+66.                             "rel 4
          ELSE.
            WRITE R-NAME TO FN1+66.                             "rel 4
          ENDIF.
        WHEN OTHERS.
          WRITE R-NAME TO FN1+66.                               "rel 4
      ENDCASE.
      MOVE FN1 TO FN2.
      MOVE FN1 TO FN3.
      WRITE '.HHH' TO FN1+124(4).                               "rel 4
      WRITE '.FFF' TO FN2+124(4).                               "rel 4
      WRITE '.EEE' TO FN3+124(4).                               "rel 4
      CONDENSE FN1 NO-GAPS.
      CONDENSE FN2 NO-GAPS.
      CONDENSE FN3 NO-GAPS.
      NAME   = R-NAME.
      CASE FUNC.
        WHEN 'D'.
          PERFORM DOWNLOAD_OBJECTS.
          CLEAR LINE.
          WRITE : 'ABAP : ' TO LINE.
          WRITE R-NAME TO LINE+8.
          WRITE 'has been unloaded' TO LINE+55.
          CONDENSE LINE.
          WRITE: / LINE.
          DESCRIBE TABLE T LINES I.
          IF I = 0.
            WRITE: / 'No Dynpros were found for unload function'.
          ELSE.
            WRITE: / 'The following Dynpros have been unloaded : '.
            PERFORM LOOP_THROUGH_T.
          ENDIF.
        WHEN 'U'.
          PERFORM UPLOAD_OBJECTS.
          DESCRIBE TABLE T LINES I.
          CASE I.
            WHEN 0.
              WRITE:  / 'No Dynpros were found for restore function'.
            WHEN OTHERS.
              WRITE: / 'The following Dynpros have been restored : '.
              PERFORM LOOP_THROUGH_T.
          ENDCASE.
          IF MAIN EQ 'Y'.
            CASE OLDNAME.
              WHEN SPACE.
                CLEAR LINE.
                WRITE : 'ABAP : ' TO LINE.
                WRITE R-NAME TO LINE+8.
                WRITE 'has been restored' TO LINE+55.
                CONDENSE LINE.
                WRITE: / LINE.
              WHEN OTHERS.
                CLEAR LINE.
                WRITE : 'ABAP : ' TO LINE.
                WRITE R-NAME TO LINE+8.
                WRITE 'has been restored - original name :'
                   TO LINE+55.
                WRITE OLDNAME TO LINE+92.
                CONDENSE LINE.
                WRITE: / LINE.
            ENDCASE.
          ELSE.
            CLEAR LINE.
            WRITE : 'ABAP : ' TO LINE.
            WRITE R-NAME TO LINE+8.
            WRITE 'has been restored' TO LINE+55.
            CONDENSE LINE.
            WRITE: / LINE.
          ENDIF.
      ENDCASE.
    ENDFORM.
    /      print progname + dynpro nrs that have been processed.     */
    FORM LOOP_THROUGH_T.
      LOOP AT T.
        CLEAR LINE.
        WRITE R-NAME TO LINE.
        WRITE T-NUMBER TO LINE+50.
        CONDENSE LINE.
        WRITE: / LINE.
      ENDLOOP.
    ENDFORM.
    /            Download Objects                                    */
    FORM DOWNLOAD_OBJECTS.
      PERFORM UNLOAD_ABAP.                 "ABAP source, texts, attr
      SELECT SINGLE * FROM TRDIR
       WHERE NAME EQ R-NAME.
      IF TRDIR-SUBC = 'I'.
        CASE INCLUDES.                     "Included file wanted
          WHEN 'Y'.
            PERFORM SCAN4-INCLUDES.
        ENDCASE.
      ENDIF.
      PERFORM UNLOAD_CUA.                  "CUA stuff
      PERFORM DOWNLOAD_DATA.               "Download EEE file to PC
      PERFORM BUILD_T.        "Build table of all dynpros in ABAP
      DESCRIBE TABLE T LINES I.
      CASE I.
        WHEN 0.            "if no dynpros exist then cannot download any
          PERFORM DOWNLOAD_DATA.           "Download EEE file to PC
        WHEN OTHERS.
          PERFORM UNLOAD_DYNPROS.          "Get Raw dynpros from SAP
          PERFORM UNLOAD_DYNPRO_COMPONENTS."Convert to table
          PERFORM DOWNLOAD_DATA.           "Download ABAP etc. to PC
          PERFORM DOWNLOAD_BIN_H1.         "Download dynpro header
          PERFORM DOWNLOAD_BIN_F1.         "Download dynpro fields
      ENDCASE.
    ENDFORM.
    /  Split ABAP up into its component parts                        */
    /                           A) Program source (72)               */
    /                           B) Texts          (132)              */
    /                           C) Attributes     (117)              */
    /                           D) CUA stuff      (Various)          */
    FORM UNLOAD_ABAP.
    /    Get ABAP language. Only required on download.               */
      SELECT SINGLE * FROM TRDIR
        WHERE NAME EQ R-NAME.
      MOVE TRDIR-RLOAD TO R-LANGUAGE.
      READ REPORT R-NAME INTO S.           "Get source into table S
      MOVE '????SRCE' TO S-TXT.
      INSERT  S INDEX 1.
    /    Text elements, Numbered texts, headings, selection texts    */
    /    Read text elements with logon language. If they don't       */
    /    exist read with the value taken from TRDIR.                 */
      READ TEXTPOOL R-NAME INTO U LANGUAGE SY-LANGU.
      IF SY-SUBRC NE 0.
        READ TEXTPOOL R-NAME INTO U LANGUAGE R-LANGUAGE.
      ENDIF.
      DESCRIBE TABLE U LINES I.
      CASE I.
        WHEN 0.
        WHEN OTHERS.
          MOVE '????TEXT' TO S-TXT.
          APPEND S.
          LOOP AT U.
            MOVE U-TXT TO S-TXT.
            APPEND S.
            DELETE U.
          ENDLOOP.
      ENDCASE.
    /    Retrieve Attributes from TRDIR and add to table S           */
    /    Change language to logged on language                       */
      MOVE '????ATTR' TO S-TXT.
      APPEND S.
      SELECT SINGLE * FROM TRDIR
             WHERE NAME EQ R-NAME.
      MOVE SY-LANGU TO TRDIR-RLOAD.
      MOVE-CORRESPONDING TRDIR TO DIR.
      MOVE DIR TO S-TXT.
      APPEND S.
    ENDFORM.
    /             retrieve CUA stuff and append to table S.          */
    FORM UNLOAD_CUA.
      MOVE R-NAME TO EU_KEY-NAME.          "Program name for CUA
      MOVE 'D' TO EU_KEY-SPRSL.            "CUA seems to want D as lang
    MOVE R-LANGUAGE TO EU_KEY-SPRSL.     "Language              "rel 2.2
    IMPORT STA FUN MEN MTX ACT BUT PFK SET LAST INC STX DOC    "rel 2.2
      IMPORT STA STX FUN MEN MTX ACT BUT PFK SET LAST INC DOC     "rel 3.0
             ATT FDN MDN SYM FIN           "rel 3.0
              FROM DATABASE EUDB(CU) ID EU_KEY.
      IF SY-SUBRC NE 0.                    "No statuses
        EXIT.
      ENDIF.
    read titles in logged on language. If not present use
    language from TRDIR.
      CASE REL3.
        WHEN SPACE.                        "(rel 4)
          SELECT * FROM RSMPTEXTS WHERE PROGNAME EQ R-NAME
                            AND SPRSL = SY-LANGU.
            MOVE-CORRESPONDING RSMPTEXTS TO FTX.
            APPEND FTX.
          ENDSELECT.
          IF SY-SUBRC NE 0.
            SELECT * FROM RSMPTEXTS WHERE PROGNAME EQ R-NAME
                              AND SPRSL = R-LANGUAGE.
              MOVE-CORRESPONDING RSMPTEXTS TO FTX.
              APPEND FTX.
            ENDSELECT.
          ENDIF.
          DESCRIBE TABLE FTX LINES I.
          IF   I > 0.
            MOVE '????FTXT' TO S-TXT.
            APPEND S.
            LOOP AT FTX.
              MOVE FTX TO S-TXT.
              APPEND S.
            ENDLOOP.
          ENDIF.
        WHEN OTHERS.
          SELECT * FROM TITLE WHERE PROGNAME   EQ R-NAME
                              AND   DDLANGUAGE EQ SY-LANGU.
            MOVE-CORRESPONDING TITLE TO TIT.
            APPEND TIT.
          ENDSELECT.
          IF SY-SUBRC NE 0.
            SELECT * FROM TITLE WHERE PROGNAME   EQ R-NAME
                                AND   DDLANGUAGE EQ R-LANGUAGE.
              MOVE-CORRESPONDING TITLE TO TIT.
              APPEND TIT.
            ENDSELECT.
          ENDIF.
      ENDCASE.
      DESCRIBE TABLE STA LINES I.
      IF   I > 0.
        MOVE '????STAT' TO S-TXT.
        APPEND S.
        LOOP AT STA.
          MOVE STA TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FUN LINES I.
      IF   I > 0.
        MOVE '????FUNC' TO S-TXT.
        APPEND S.
        LOOP AT FUN.
          MOVE FUN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MEN LINES I.
      IF   I > 0.
        MOVE '????MEN1' TO S-TXT.
        APPEND S.
        LOOP AT MEN.
          MOVE MEN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MTX LINES I.
      IF   I > 0.
        MOVE '????MTX1' TO S-TXT.
        APPEND S.
        LOOP AT MTX.
          MOVE MTX TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE ACT LINES I.
      IF   I > 0.
        MOVE '????ACTN' TO S-TXT.
        APPEND S.
        LOOP AT ACT.
          MOVE ACT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE BUT LINES I.
      IF   I > 0.
        MOVE '????BUTN' TO S-TXT.
        APPEND S.
        LOOP AT BUT.
          MOVE BUT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE PFK LINES I.
      IF   I > 0.
        MOVE '????PFKY' TO S-TXT.
        APPEND S.
        LOOP AT PFK.
          MOVE PFK TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE SET LINES I.
      IF   I > 0.
        MOVE '????SETS' TO S-TXT.
        APPEND S.
        LOOP AT SET.
          MOVE SET TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      IF LAST NE SPACE.
        MOVE '????LIST' TO S-TXT.
        APPEND S.
        MOVE LAST TO S-TXT.
        APPEND S.
      ENDIF.
      DESCRIBE TABLE INC LINES I.
      IF   I > 0.
        MOVE '????INCL' TO S-TXT.
        APPEND S.
        LOOP AT INC.
          MOVE INC TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE STX LINES I.
      IF   I > 0.
        MOVE '????STXT' TO S-TXT.
        APPEND S.
        LOOP AT STX.
          MOVE STX TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE DOC LINES I.
      IF   I > 0.
        MOVE '????DOCN' TO S-TXT.
        APPEND S.
        LOOP AT DOC.
          MOVE DOC TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE TIT LINES I.
      IF   I > 0.
        MOVE '????TITL' TO S-TXT.
        APPEND S.
        LOOP AT TIT.
          MOVE TIT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
    Next 5 tables are rel 3.0 specific  (ATT, FDN, MDN, SYM, FIN)
      DESCRIBE TABLE ATT LINES I.
      IF   I > 0.
        MOVE '????VATT' TO S-TXT.
        APPEND S.
        LOOP AT ATT.
          MOVE ATT TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FDN LINES I.
      IF   I > 0.
        MOVE '????VFDN' TO S-TXT.
        APPEND S.
        LOOP AT FDN.
          MOVE FDN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE MDN LINES I.
      IF   I > 0.
        MOVE '????VMDN' TO S-TXT.
        APPEND S.
        LOOP AT MDN.
          MOVE MDN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE SYM LINES I.
      IF   I > 0.
        MOVE '????VSYM' TO S-TXT.
        APPEND S.
        LOOP AT SYM.
          MOVE SYM TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.
      DESCRIBE TABLE FIN LINES I.
      IF   I > 0.
        MOVE '????VFIN' TO S-TXT.
        APPEND S.
        LOOP AT FIN.
          MOVE FIN TO S-TXT.
          APPEND S.
        ENDLOOP.
      ENDIF.

  • My download and upload speed is half that of my laptop

    My download and upload speed is half that of my laptop. I looked on a forum and it suggested that the new version of IOS might solve the problem, but I have updated to the latest and it hasn't.  It is erratic, and I have to move my ipad round to get a signal in some parts of the house, whereas the laptop works very fast right next to it.

    Problem solved. The culprit is the VZ issued Actiontec Modem-Router-Access Point.
    I have doubt from the beginning that the problem is caused by my wifi adapter b/c it has always performed very well from the start. Upon more research on the web, I see that there are a lot of people having the exact problem as I do with their FiOS internet. I found some  users who solved the problem with the same solution so I decide to try the same.
    When I switched to FiOS, I took away my Asus N router b/c the VZ supplied Actiontec is a N router and AP also. Now, I turn off wireless in the Actionteach and hook up my Asus N router to it to use it as the AP. Boom! Now I get the full provisioned 50/25 speed and then some with both wired and wireless (and, my upstairs office is getting 40/20 wirelessly when before it used to be only about 15/10 using the Actiontec AP). Turning off the Asus and turning the Actiontech wireless back on and the wireless drops back down to 25/15. So it is pretty clear to me that somehow the Actiontec is not performing the way it should.
    (In the Asus N router, in additional to the option of setting the wireless mode to b, g, n, there is also an option to select the wireless speed of up to 11, 54, 72 or 150. When I select “Up to 72 Mbps”, I get the same wireless speed as when I use the Actiontec AP which is only about 25/15. When I set the Asus speed to “Up to 150” I get the full provisioned speed of 50/25. So I look into the Actiontec but there is no such option beside the option to configure the b, g, n modes.)
    I don’t think they give me a bump unit of the Actiontec b/c this problem is rather widespread. So, either there is a problem with this entire line of model of Actiontec or that there is a setting (or settings) in it that prevent it from performing the way it should but I look and look and can’t find any relevant setting.

  • Hierarchy download and upload

    Hi experts,
    i want to download hierarchies from production bw to development bw. pls explain me the procedure how to do. as i understand hierarchies will be in the r/3 system. then how do i download them and upload them to the required box in bw. is there any function module for downloading and uploading hierarchies.
    Pls help.....

    Hello,
    To execute the program you have to run it in transaction se38.
    Check if you have it since it is Z you might not have it.
    If you don't find it create in se38 a new program with the following code:
    *& Report  Z_SAP_HIERARCHY_DOWNLOAD                                    *
    * SAP Consulting BW Tools:
    * Download hierarchy into a flat file. The file has the correct format
    * for uploading into BW via a hierarchy InfoSource (IDOC).
    * (c) SAP AG 2003-2004 MFB, SAP Labs LLC
    * created: 2003-07-23
    * last update: 2004-05-02
    * Text elements:
    * P_DATES Include from/to dates
    * P_DATETO Valid-to date
    * P_FNAME File name
    * P_HIENM Hierarchy name
    * P_INTER Include from/to leaves
    * P_IOBJNM InfoObject
    * P_LANGU Language
    * P_VERS Hierarchy version
    REPORT z_sap_hierarchy_download.
    TYPE-POOLS: rs, rsdm, rrh1.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS:
    p_iobjnm TYPE rsdiobjnm MEMORY ID rsc.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
    PARAMETERS:
    p_hienm TYPE rshiedir-hienm,
    p_vers TYPE rshiedir-version,
    p_dateto TYPE rshiedir-dateto,
    p_langu TYPE rshiedirt-langu.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.
    PARAMETERS:
    p_fname LIKE rlgrap-filename,
    p_dates AS CHECKBOX DEFAULT 'X',
    p_inter AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK b3.
    * File structure
    TYPES:
    * No dates/intervals
    BEGIN OF y_s_hierfile_1,
    nodeid TYPE rshienodid,
    iobjnm TYPE rsiobjnm,
    nodename TYPE rsnodename,
    * tlevel TYPE rstlevel,
    link TYPE rslink,
    parentid TYPE rsparent,
    childid TYPE rschild,
    nextid TYPE rsnext,
    langu TYPE langu,
    txtsh TYPE rstxtsh,
    txtmd TYPE rstxtmd,
    txtlg TYPE rstxtlg,
    END OF y_s_hierfile_1,
    y_t_hierfile_1 TYPE STANDARD TABLE OF y_s_hierfile_1,
    * With dates
    BEGIN OF y_s_hierfile_2,
    nodeid TYPE rshienodid,
    iobjnm TYPE rsiobjnm,
    nodename TYPE rsnodename,
    * tlevel TYPE rstlevel,
    link TYPE rslink,
    parentid TYPE rsparent,
    childid TYPE rschild,
    nextid TYPE rsnext,
    dateto TYPE rsdateto,
    datefrom TYPE rsdatefrom,
    langu TYPE langu,
    txtsh TYPE rstxtsh,
    txtmd TYPE rstxtmd,
    txtlg TYPE rstxtlg,
    END OF y_s_hierfile_2,
    y_t_hierfile_2 TYPE STANDARD TABLE OF y_s_hierfile_2,
    * With intervals
    BEGIN OF y_s_hierfile_3,
    nodeid TYPE rshienodid,
    iobjnm TYPE rsiobjnm,
    nodename TYPE rsnodename,
    * tlevel TYPE rstlevel,
    link TYPE rslink,
    parentid TYPE rsparent,
    childid TYPE rschild,
    nextid TYPE rsnext,
    leafto TYPE rsleafto,
    leaffrom TYPE rsleaffrom,
    langu TYPE langu,
    txtsh TYPE rstxtsh,
    txtmd TYPE rstxtmd,
    txtlg TYPE rstxtlg,
    END OF y_s_hierfile_3,
    y_t_hierfile_3 TYPE STANDARD TABLE OF y_s_hierfile_3,
    * With dates/intervals
    BEGIN OF y_s_hierfile_4,
    nodeid TYPE rshienodid,
    iobjnm TYPE rsiobjnm,
    nodename TYPE rsnodename,
    * tlevel TYPE rstlevel,
    link TYPE rslink,
    parentid TYPE rsparent,
    childid TYPE rschild,
    nextid TYPE rsnext,
    dateto TYPE rsdateto,
    datefrom TYPE rsdatefrom,
    leafto TYPE rsleafto,
    leaffrom TYPE rsleaffrom,
    langu TYPE langu,
    txtsh TYPE rstxtsh,
    txtmd TYPE rstxtmd,
    txtlg TYPE rstxtlg,
    END OF y_s_hierfile_4,
    y_t_hierfile_4 TYPE STANDARD TABLE OF y_s_hierfile_4.
    * Hierarchy definition
    DATA:
    g_s_hiesel TYPE rsndi_s_hiesel,
    g_s_hiedir TYPE rsndi_s_hiedir,
    g_subrc TYPE sy-subrc,
    g_t_hiedirt TYPE TABLE OF rshiedirt,
    g_s_hierstruc TYPE rssh_s_htab,
    g_t_hierstruc TYPE TABLE OF rssh_s_htab,
    g_s_thiernode TYPE rsthiernode,
    g_t_thiernode TYPE TABLE OF rsthiernode WITH KEY langu hieid objvers
    nodename,
    g_s_hierintvl TYPE rssh_s_jtab,
    g_t_hierintvl TYPE TABLE OF rssh_s_jtab WITH KEY hieid objvers nodeid,
    g_s_message TYPE rsndi_s_message,
    g_t_message TYPE TABLE OF rsndi_s_message,
    g_s_chavlinfo TYPE rsdm_s_chavlinfo,
    g_t_chavlinfo TYPE rsdm_t_chavlinfo.
    * File
    DATA:
    g_fname TYPE string,
    g_struct_s TYPE string,
    g_struct_t TYPE string,
    gr_s_file TYPE REF TO data,
    gr_t_file TYPE REF TO data.
    FIELD-SYMBOLS:
    <g_langu> TYPE ANY,
    <g_s_file> TYPE ANY,
    <g_t_file> TYPE STANDARD TABLE.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_iobjnm.
      CALL FUNCTION 'RSD_IOBJ_F4'
        EXPORTING
          i_show_cha    = rs_c_true
          i_objvers     = rs_c_objvers-active
          i_hietabfl    = rs_c_true
        CHANGING
          c_iobjnm      = p_iobjnm
        EXCEPTIONS
          illegal_input = 1.
      CHECK sy-subrc = 0.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_hienm.
      DATA:
      l_s_hiertxt TYPE rrh1_s_hiertxt,
      l_t_hiertxt TYPE rrh1_t_hiertxt.
      CALL FUNCTION 'RRH1_HIERARCHY_HELP_VALUES_GET'
        EXPORTING
          i_iobjnm          = p_iobjnm
          i_dateto          = p_dateto
          i_hienm           = p_hienm
          i_version         = p_vers
        IMPORTING
          e_t_hiertxt       = l_t_hiertxt
        EXCEPTIONS
          no_f4_available   = 1
          dialogue_canceled = 2
          OTHERS            = 3.
      CHECK sy-subrc = 0.
      READ TABLE l_t_hiertxt INTO l_s_hiertxt INDEX 1.
      CHECK NOT l_s_hiertxt IS INITIAL.
      p_hienm = l_s_hiertxt-hienm.
      DATA:
      l_s_dynpfields TYPE dynpread,
      l_t_dynpfields TYPE STANDARD TABLE OF dynpread.
      CLEAR: l_t_dynpfields, l_s_dynpfields.
      l_s_dynpfields-fieldname = 'P_VERS'.
      WRITE l_s_hiertxt-version TO l_s_dynpfields-fieldvalue.
      APPEND l_s_dynpfields TO l_t_dynpfields.
      l_s_dynpfields-fieldname = 'P_DATETO'.
      WRITE l_s_hiertxt-dateto TO l_s_dynpfields-fieldvalue.
      APPEND l_s_dynpfields TO l_t_dynpfields.
      CALL FUNCTION 'DYNP_VALUES_UPDATE'
        EXPORTING
          dyname     = sy-repid
          dynumb     = sy-dynnr
        TABLES
          dynpfields = l_t_dynpfields.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
      DATA:
      l_filename1 TYPE string,
      l_filename2 TYPE string,
      l_path TYPE string,
      l_fullpath TYPE string,
      l_action TYPE i.
      l_filename1 = p_fname.
      CALL METHOD cl_gui_frontend_services=>file_save_dialog
      EXPORTING
      window_title = 'Select Download File'
      default_extension = 'txt'
      default_file_name = l_filename1
      file_filter = 'All Files (*.*)|*.*|Text files (*.txt)|*.txt'
      CHANGING
      filename = l_filename2
      path = l_path
      fullpath = l_fullpath
      user_action = l_action
      EXCEPTIONS
      cntl_error = 1
      OTHERS = 2.                                               "#EC NOTEXT
      CHECK sy-subrc = 0.
      CALL METHOD cl_gui_cfw=>flush.
      IF l_action = 0.
        p_fname = l_fullpath.
      ENDIF.
    INITIALIZATION.
      GET PARAMETER ID 'RSC' FIELD p_iobjnm.
    START-OF-SELECTION.
    * Check input
      CHECK NOT p_fname IS INITIAL.
      IF p_langu IS INITIAL.
        p_langu = sy-langu.
      ENDIF.
      IF p_dateto IS INITIAL.
        p_dateto = '99991231'.
      ENDIF.
    * Read hierarchy
      CLEAR g_s_hiesel.
      g_s_hiesel-objvers = rs_c_objvers-active.
      g_s_hiesel-hienm = p_hienm.
      g_s_hiesel-version = p_vers.
      g_s_hiesel-iobjnm = p_iobjnm.
      g_s_hiesel-dateto = p_dateto.
      CALL FUNCTION 'RSNDI_SHIE_STRUCTURE_GET'
        EXPORTING
          i_s_hiesel        = g_s_hiesel
          i_no_nodenm_table = rs_c_true
        IMPORTING
          e_s_hiedir        = g_s_hiedir
          e_subrc           = g_subrc
        TABLES
          e_t_hiedirt       = g_t_hiedirt
          e_t_hierstruc     = g_t_hierstruc
          e_t_thiernode     = g_t_thiernode
          e_t_hierintvl     = g_t_hierintvl
          e_t_message       = g_t_message.
      IF g_subrc <> 0.
        READ TABLE g_t_message INTO g_s_message INDEX 1.
        IF sy-subrc = 0.
          MESSAGE ID g_s_message-msgid TYPE 'I' NUMBER g_s_message-msgno
          WITH g_s_message-msgv1 g_s_message-msgv2
          g_s_message-msgv3 g_s_message-msgv4.
        ELSE.
          MESSAGE ID 'RSBO' TYPE 'I' NUMBER 899
          WITH 'Hierarchy read error'.
        ENDIF.
        EXIT.
      ENDIF.
    * Defined output structures
      IF p_dates IS INITIAL AND p_inter IS INITIAL.
        g_struct_s = 'Y_S_HIERFILE_1'.
        g_struct_t = 'Y_T_HIERFILE_1'.
      ELSEIF p_dates = 'X' AND p_inter IS INITIAL.
        g_struct_s = 'Y_S_HIERFILE_2'.
        g_struct_t = 'Y_T_HIERFILE_2'.
      ELSEIF p_dates IS INITIAL AND p_inter = 'X'.
        g_struct_s = 'Y_S_HIERFILE_3'.
        g_struct_t = 'Y_T_HIERFILE_3'.
      ELSE.
        g_struct_s = 'Y_S_HIERFILE_4'.
        g_struct_t = 'Y_T_HIERFILE_4'.
      ENDIF.
      CREATE DATA gr_s_file TYPE (g_struct_s).
      ASSIGN gr_s_file->* TO <g_s_file>.
      CREATE DATA gr_t_file TYPE (g_struct_t).
      ASSIGN gr_t_file->* TO <g_t_file>.
    * Nodes
      REFRESH <g_t_file>.
      LOOP AT g_t_hierstruc INTO g_s_hierstruc.
        CLEAR <g_s_file>.
        MOVE-CORRESPONDING g_s_hierstruc TO <g_s_file>.
    * Texts for nodes
        READ TABLE g_t_thiernode INTO g_s_thiernode WITH TABLE KEY
        langu = p_langu
        hieid = g_s_hierstruc-hieid
        objvers = rs_c_objvers-active
        nodename = g_s_hierstruc-nodename.
        IF sy-subrc = 0.
          MOVE-CORRESPONDING g_s_thiernode TO <g_s_file>.
        ELSE.
    * Texts for characteristic values
          REFRESH g_t_chavlinfo.
          CLEAR g_s_chavlinfo.
          g_s_chavlinfo-c_chavl = g_s_hierstruc-nodename.
          APPEND g_s_chavlinfo TO g_t_chavlinfo.
          CALL FUNCTION 'RSD_CHAVL_READ_ALL'
            EXPORTING
              i_iobjnm                  = g_s_hierstruc-iobjnm
              i_langu                   = p_langu
              i_dateto                  = p_dateto
              i_check_value             = space
              i_sid_in                  = space
              i_hieid                   = g_s_hiedir-hieid
              i_objvers                 = g_s_hiedir-objvers
            CHANGING
              c_t_chavlinfo             = g_t_chavlinfo
            EXCEPTIONS
              info_object_not_found     = 1
              routines_generation_error = 2
              check_table_not_existing  = 3
              text_table_not_existing   = 4
              OTHERS                    = 5.
          IF sy-subrc = 0.
            READ TABLE g_t_chavlinfo INTO g_s_chavlinfo INDEX 1.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING g_s_chavlinfo-e_chatexts TO <g_s_file>.
              ASSIGN COMPONENT 'LANGU' OF STRUCTURE <g_s_file> TO <g_langu>.
              IF sy-subrc = 0.
                <g_langu> = p_langu.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
    * Intervals
        IF g_s_hierstruc-intervl = 'X' AND p_inter = 'X'.
          READ TABLE g_t_hierintvl INTO g_s_hierintvl WITH TABLE KEY
          hieid = g_s_hierstruc-hieid
          objvers = rs_c_objvers-active
          nodeid = g_s_hierstruc-nodeid.
          IF sy-subrc = 0.
            MOVE-CORRESPONDING g_s_hierintvl TO <g_s_file>.
          ENDIF.
        ENDIF.
        APPEND <g_s_file> TO <g_t_file>.
      ENDLOOP.
    * Download output table
      g_fname = p_fname.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename                = g_fname
          write_field_separator   = space
        TABLES
          data_tab                = <g_t_file>
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
      IF sy-subrc = 0.
        MESSAGE ID 'RSBO' TYPE 'I' NUMBER 899
        WITH 'Hierarchy download successful!'.
      ELSE.
        MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Diogo

  • Download and Upload Status/other utilities in one offline file

    Hi,
    Is it possible to download or upload the GUI statuses?
    Also, I am curious if there is any utility by which I can find all the related technical objects for one report/utility?
    e.g. when i try to copy objects from one system to another(which are not connected), I often forget to copy few objects which i have to find out through code inspector errors. (eg. message classes, search helps etc).
    also, i repeatedly have to copy the screens and statuses to other systems. Is it possible to download all of the related objects in an offline file? so that i can upload the same to other system.
    our sandbox system is not connect to the real time system and we need to copy objects from dev/quality to sandbox if we want to try out few things.

    Hello Chinmaya,
    I know of a program REPTRAN which can download all your code and the related things in multiple offline files.
    But dont know if it will be of any help to you or not.
    Please check the same.
    Hope it helps.
    Regards,
    Himanshu

  • Download and upload Z programs from one r/3 to another r/3 system

    hi,
    i want to download all Z programs( reports, screens, function modules etc) from one R/3 system and upload the same into another R/3 system.
    can anyone give me the sample code for this please
    thanks.

    hi Radhika,
      For that save those programs into some transport request by assigning the development class and release the request to the system where you want the program to be ..
    for assigning those programs on to some development class follow this path SE38 give the program name ... GOTO->OBJECT DIRECTORY ENTRY-> give the development class by changing $tmp to some development class
    Regards,
    santosh

  • Download and Upload(!) ABAP-Source and DDIC-Objects?

    Hi,
    is there a standard transaction or third party tool
    to download and upload(!!) ABAP-Source (function modules,
    function groups, module pools, reports...) and DDIC-Objects
    (tables, structures, data elements) to a local file system?
    In terms of uploading these objects it would be desirable
    that the transaction/tool creates packages/development classes/.. on its own.
    I would need that to copy the same source and ddic-objcets to different customer systems without doing it "manually" everytime.
    Does anyone know advice?
    Thank you,
    Bernhard

    Hi Bernd,
    look here :
    Re: how to download pf-status and upload in another system
    Andreas

  • Download and upload program

    Hello to everybody,
    I'm looking for a standard program that can download and upload program' source codes. I found the program REPTRAN (in SAP release 6.0) that can only download the source code (with the include as well), but i didn't find the upload one.
    So, does anyone knows if exist a standard program that can download source codes (comprensive of include) and upload it as well?
    Thanks and bye..

    Hi,
    Here is code which read the Programs & download:
    Here Just pass the itab "SOURCE" into WS_DOWNLOAD.
    function zuplt01f_tr.
    *"*"Local interface:
    *"  IMPORTING
    *"     REFERENCE(PROGRAM_NAME) TYPE  SYREPID
    *"  TABLES
    *"      SOURCE
      data: f(240) type c,
            g type i,
            h(72) type c,
            low type i   .
      read report program_name into source . " state 'A'.
      describe table source  lines count.
    endfunction.
    Raja T

Maybe you are looking for