<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to Upload Program Source Code in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170973#M997199</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vinod,&lt;/P&gt;&lt;P&gt;This is for Downloading the Programs. It wont useful for uploading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sayanna Damerla&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Jul 2008 11:48:58 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-07-15T11:48:58Z</dc:date>
    <item>
      <title>How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170967#M997193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;i have a program which downloads the source code into text files.&lt;/P&gt;&lt;P&gt;I need to create all these into another server.&lt;/P&gt;&lt;P&gt;so i need a program to upload these programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea how to it? Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp;Regards,&lt;/P&gt;&lt;P&gt;Sayanna Damerla&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2008 14:48:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170967#M997193</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-14T14:48:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170968#M997194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Check this statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INSERT REPORT prog FROM itab. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First upload the txt file from pc to itab. Then use above statement to create report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But i think it creates the report as local object. U may have to assign development class and TR later. Check various additions also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Vinod.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2008 14:53:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170968#M997194</guid>
      <dc:creator>vinod_vemuru2</dc:creator>
      <dc:date>2008-07-14T14:53:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170969#M997195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this custom code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Upload and Download ABAP Source Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Source Code Listing &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report: ZKBPROGS             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Function   : Up/Download ABAP reports complete with texts            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        - this program does not update TRDIR with the                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          TRDIR entries that are in the program uploaded.  Instead,  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          current users stats are used.          *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        - this program allows selection of reports from a list or    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          a single report can be tuped in and uploaded               *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        - this program also updates TADIR so that a development class*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          is assigned to the program             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        - this program checks to see if the program already has a    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          TRDIR entry, and if it does, warns the user                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        - this program will save/restore the program documenation too*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZKBPROGS&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       LINE-SIZE  255.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declare Database Objects     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables:&lt;/P&gt;&lt;P&gt;  DOKIL,&lt;/P&gt;&lt;P&gt;  TRDIR.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;  MC_TRDIR_IDENTIFIER(72)  TYPE C VALUE '%&amp;amp;%&amp;amp; RDIR',&lt;/P&gt;&lt;P&gt;  MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&amp;amp;%&amp;amp; REPO',&lt;/P&gt;&lt;P&gt;  MC_TEXT_IDENTIFIER(72)   TYPE C VALUE '%&amp;amp;%&amp;amp; TEXP',&lt;/P&gt;&lt;P&gt;  MC_THEAD_IDENTIFIER(72)  TYPE C VALUE '%&amp;amp;%&amp;amp; HEAD',&lt;/P&gt;&lt;P&gt;  MC_DOC_IDENTIFIER(72)    TYPE C VALUE '%&amp;amp;%&amp;amp; DOKL',&lt;/P&gt;&lt;P&gt;  MC_TRDIR_SHORT(4)        TYPE C VALUE 'RDIR',&lt;/P&gt;&lt;P&gt;  MC_REPORT_SHORT(4)       TYPE C VALUE 'REPO',&lt;/P&gt;&lt;P&gt;  MC_TEXT_SHORT(4)         TYPE C VALUE 'TEXP',&lt;/P&gt;&lt;P&gt;  MC_THEAD_SHORT(4)        TYPE C VALUE 'HEAD',&lt;/P&gt;&lt;P&gt;  MC_DOC_SHORT(4)          TYPE C VALUE 'DOKP'.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declare Module level data structures             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0,&lt;/P&gt;&lt;P&gt;        LINE(72) TYPE C,&lt;/P&gt;&lt;P&gt;      END OF MTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: MSTR_THEAD LIKE THEAD.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0,&lt;/P&gt;&lt;P&gt;        LINE(275) TYPE C,&lt;/P&gt;&lt;P&gt;      END OF MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0,&lt;/P&gt;&lt;P&gt;        NAME LIKE TRDIR-NAME,&lt;/P&gt;&lt;P&gt;        DESC(72) TYPE C,&lt;/P&gt;&lt;P&gt;        SAVENAME LIKE RLGRAP-FILENAME,&lt;/P&gt;&lt;P&gt;      END OF MTAB_DIRECTORY.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0,&lt;/P&gt;&lt;P&gt;        LINE(255) TYPE C,&lt;/P&gt;&lt;P&gt;      END OF MTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Options for upload/download of programs&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'.       " Download reports&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:&lt;/P&gt;&lt;P&gt;  S_NAME  FOR TRDIR-NAME,              " Program Name&lt;/P&gt;&lt;P&gt;  S_SUBC  FOR TRDIR-SUBC               " Program Type&lt;/P&gt;&lt;P&gt;          DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default&lt;/P&gt;&lt;P&gt;  S_CNAM  FOR TRDIR-CNAM               " Created by&lt;/P&gt;&lt;P&gt;          DEFAULT SY-UNAME,&lt;/P&gt;&lt;P&gt;  S_UNAM  FOR TRDIR-UNAM,              " Last Changed by&lt;/P&gt;&lt;P&gt;  S_CDAT  FOR TRDIR-CDAT,              " Creation date&lt;/P&gt;&lt;P&gt;  S_UDAT  FOR TRDIR-UDAT.              " Last update date&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK FRM_TRDIR.&lt;/P&gt;&lt;P&gt;*-- Options for uploading programs&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  RB_UP   RADIOBUTTON GROUP UDL.       " Upload reports&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(29) TEXT-SNG.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 33(42) TEXT-FNA.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  RB_LIST RADIOBUTTON GROUP HOW.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK FRM_UPLOAD.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK FRM_OPTIONS.&lt;/P&gt;&lt;P&gt;*-- Options for up/downloading programs&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  RB_DOS  RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local&lt;/P&gt;&lt;P&gt;  RB_UNIX RADIOBUTTON GROUP FIL,       " Save to UNIX&lt;/P&gt;&lt;P&gt;  P_PATH  LIKE RLGRAP-FILENAME         " Path to save files to&lt;/P&gt;&lt;P&gt;        DEFAULT 'c:\temp\'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK FRM_FILEN.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_PROGRAM'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            OBJECT             = S_NAME-LOW&lt;/P&gt;&lt;P&gt;            SUPPRESS_SELECTION = 'X'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            RESULT             = S_NAME-LOW&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS             = 1.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_PROGRAM'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            OBJECT             = S_NAME-HIGH&lt;/P&gt;&lt;P&gt;            SUPPRESS_SELECTION = 'X'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            RESULT             = S_NAME-HIGH&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS             = 1.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW.&lt;/P&gt;&lt;P&gt;  PERFORM GET_NAME USING 'S_UNAM-LOW'&lt;/P&gt;&lt;P&gt;                CHANGING S_UNAM-LOW.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH.&lt;/P&gt;&lt;P&gt;  PERFORM GET_NAME USING 'S_UNAM-HIGH'&lt;/P&gt;&lt;P&gt;                CHANGING S_UNAM-HIGH.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW.&lt;/P&gt;&lt;P&gt;  PERFORM GET_NAME USING 'S_CNAM-LOW'&lt;/P&gt;&lt;P&gt;                CHANGING S_CNAM-LOW.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH.&lt;/P&gt;&lt;P&gt;  PERFORM GET_NAME USING 'S_CNAM-HIGH'&lt;/P&gt;&lt;P&gt;                CHANGING S_CNAM-HIGH.&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  IF RB_LIST = 'X'.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    NEW-LINE.&lt;/P&gt;&lt;P&gt;    WRITE: AT 3 TEXT-H01,&lt;/P&gt;&lt;P&gt;           AT 15 TEXT-H03.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;AT LINE-SELECTION.&lt;/P&gt;&lt;P&gt;  CHECK RB_LIST = 'X'.                 " only do in list mode&lt;/P&gt;&lt;P&gt;  READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME.&lt;/P&gt;&lt;P&gt;*-- Read file into an internal table&lt;/P&gt;&lt;P&gt;  PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;            USING  MTAB_DIRECTORY-SAVENAME.&lt;/P&gt;&lt;P&gt;*-- Split table into TADIR entry, report lines, and report text&lt;/P&gt;&lt;P&gt;  PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;                 MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;                 MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;                 MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;        CHANGING TRDIR&lt;/P&gt;&lt;P&gt;                 MSTR_THEAD.&lt;/P&gt;&lt;P&gt;*-- Save all of the data&lt;/P&gt;&lt;P&gt;  PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;               MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;               MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;        USING  TRDIR&lt;/P&gt;&lt;P&gt;               MSTR_THEAD.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of processing          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;  IF RB_DOWN = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM DOWNLOAD_REPORTS.&lt;/P&gt;&lt;P&gt;  ELSEIF RB_UP = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM UPLOAD_REPORTS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF RB_DOWN = 'X'.&lt;/P&gt;&lt;P&gt;    CONCATENATE P_PATH&lt;/P&gt;&lt;P&gt;                'directory.txt'&lt;/P&gt;&lt;P&gt;      INTO P_PATH.&lt;/P&gt;&lt;P&gt;    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY&lt;/P&gt;&lt;P&gt;           USING  P_PATH.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM UPLOAD_REPORTS   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM UPLOAD_REPORTS.&lt;/P&gt;&lt;P&gt;*-- Can upload a reports entered in selection criteria or&lt;/P&gt;&lt;P&gt;*-- select from a list.  List can be from index.txt in same directory&lt;/P&gt;&lt;P&gt;*-- (created by the download) or by reading the first line of each file&lt;/P&gt;&lt;P&gt;*-- in the directory.&lt;/P&gt;&lt;P&gt;  IF RB_FILE = 'X'. " Upload single program from a file&lt;/P&gt;&lt;P&gt;*-- Read file into an internal table&lt;/P&gt;&lt;P&gt;    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;              USING  P_PATH.&lt;/P&gt;&lt;P&gt;*-- Split table into TADIR entry, report lines, and report text&lt;/P&gt;&lt;P&gt;    PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;                   MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;                   MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;                   MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;          CHANGING TRDIR&lt;/P&gt;&lt;P&gt;                   MSTR_THEAD.&lt;/P&gt;&lt;P&gt;*-- Save all of the data&lt;/P&gt;&lt;P&gt;    PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;                 MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;                 MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;          USING  TRDIR&lt;/P&gt;&lt;P&gt;                 MSTR_THEAD.&lt;/P&gt;&lt;P&gt;  ELSEIF RB_LIST = 'X'. " Show list for user to choose from&lt;/P&gt;&lt;P&gt;*-- get list of report names/descriptions from directory text&lt;/P&gt;&lt;P&gt;    CONCATENATE P_PATH&lt;/P&gt;&lt;P&gt;                'directory.txt'&lt;/P&gt;&lt;P&gt;    INTO P_PATH.&lt;/P&gt;&lt;P&gt;    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY&lt;/P&gt;&lt;P&gt;              USING  P_PATH.&lt;/P&gt;&lt;P&gt;    SORT MTAB_DIRECTORY.&lt;/P&gt;&lt;P&gt;*-- Write out list of report names/descriptions&lt;/P&gt;&lt;P&gt;    LOOP AT MTAB_DIRECTORY.&lt;/P&gt;&lt;P&gt;      WRITE:&lt;/P&gt;&lt;P&gt;        / MTAB_DIRECTORY-NAME UNDER TEXT-H01,&lt;/P&gt;&lt;P&gt;          MTAB_DIRECTORY-DESC UNDER TEXT-H03,&lt;/P&gt;&lt;P&gt;          MTAB_DIRECTORY-SAVENAME.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Process user selections for reports to upload.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.           " upload_reports&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM DOWNLOAD_REPORTS *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      From the user selections, get all programs that meet the      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      criteria, and save them in ftab_program_directory.            *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Also save the report to disk.             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DOWNLOAD_REPORTS.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    LC_FULL_FILENAME LIKE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;*-- The table is put into an internal table because the program will&lt;/P&gt;&lt;P&gt;*-- abend if multiple transfers to a dataset occur within a SELECT/&lt;/P&gt;&lt;P&gt;*-- ENDSELCT (tested on 3.1H)&lt;/P&gt;&lt;P&gt;  SELECT * FROM  TRDIR&lt;/P&gt;&lt;P&gt;         INTO TABLE MTAB_PROGRAM_TRDIR&lt;/P&gt;&lt;P&gt;         WHERE  NAME  IN S_NAME&lt;/P&gt;&lt;P&gt;         AND    SUBC  IN S_SUBC&lt;/P&gt;&lt;P&gt;         AND    CNAM  IN S_CNAM&lt;/P&gt;&lt;P&gt;         AND    UNAM  IN S_UNAM&lt;/P&gt;&lt;P&gt;         AND    CDAT  IN S_CDAT&lt;/P&gt;&lt;P&gt;         AND    UDAT  IN S_UDAT.&lt;/P&gt;&lt;P&gt;  LOOP AT MTAB_PROGRAM_TRDIR.&lt;/P&gt;&lt;P&gt;*-- Clear out text and source code tables&lt;/P&gt;&lt;P&gt;    CLEAR:&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_FILE,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_SOURCE,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_TEXTS,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;    REFRESH:&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_FILE,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_SOURCE,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_TEXTS,&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;*-- Get the report&lt;/P&gt;&lt;P&gt;    READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;*-- Get the text for the report&lt;/P&gt;&lt;P&gt;    READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS.&lt;/P&gt;&lt;P&gt;*-- Get the documentation for the report&lt;/P&gt;&lt;P&gt;    CLEAR DOKIL.&lt;/P&gt;&lt;P&gt;    SELECT * UP TO 1 ROWS FROM DOKIL&lt;/P&gt;&lt;P&gt;           WHERE  ID          = 'RE'&lt;/P&gt;&lt;P&gt;           AND    OBJECT      = MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;           AND    LANGU       = SY-LANGU&lt;/P&gt;&lt;P&gt;           AND    TYP         = 'E'&lt;/P&gt;&lt;P&gt;           ORDER BY VERSION DESCENDING.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;*-- Documentation exists for this object&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'DOCU_READ'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                ID      = DOKIL-ID&lt;/P&gt;&lt;P&gt;                LANGU   = DOKIL-LANGU&lt;/P&gt;&lt;P&gt;                OBJECT  = DOKIL-OBJECT&lt;/P&gt;&lt;P&gt;                TYP     = DOKIL-TYP&lt;/P&gt;&lt;P&gt;                VERSION = DOKIL-VERSION&lt;/P&gt;&lt;P&gt;           IMPORTING&lt;/P&gt;&lt;P&gt;                HEAD    = MSTR_THEAD&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                LINE    = MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;           EXCEPTIONS&lt;/P&gt;&lt;P&gt;                OTHERS  = 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*-- Put the report code and texts into a single file&lt;/P&gt;&lt;P&gt;*-- Put the identifier line in so that the start of the TRDIR line&lt;/P&gt;&lt;P&gt;*-- is marked&lt;/P&gt;&lt;P&gt;    CONCATENATE MC_TRDIR_IDENTIFIER&lt;/P&gt;&lt;P&gt;    MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;    INTO MTAB_PROGRAM_FILE-LINE.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Add the TRDIR line&lt;/P&gt;&lt;P&gt;    MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Put the identifier line in so that the start of the report code&lt;/P&gt;&lt;P&gt;*-- is marked&lt;/P&gt;&lt;P&gt;    CONCATENATE MC_REPORT_IDENTIFIER&lt;/P&gt;&lt;P&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Add the report code&lt;/P&gt;&lt;P&gt;    LOOP AT MTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;      APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Put the identifier line in so that the start of the report text&lt;/P&gt;&lt;P&gt;*-- is marked&lt;/P&gt;&lt;P&gt;    CONCATENATE MC_TEXT_IDENTIFIER&lt;/P&gt;&lt;P&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Add the report texts&lt;/P&gt;&lt;P&gt;    LOOP AT MTAB_PROGRAM_TEXTS.&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS.&lt;/P&gt;&lt;P&gt;      APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Put the identifier line in so that the start of the THEAD record&lt;/P&gt;&lt;P&gt;*-- is marked&lt;/P&gt;&lt;P&gt;    CONCATENATE MC_THEAD_IDENTIFIER&lt;/P&gt;&lt;P&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    MTAB_PROGRAM_FILE = MSTR_THEAD.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Put the identifier line in so that the start of the report&lt;/P&gt;&lt;P&gt;*-- documentation is marked&lt;/P&gt;&lt;P&gt;    CONCATENATE MC_DOC_IDENTIFIER&lt;/P&gt;&lt;P&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;/P&gt;&lt;P&gt;    APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;*-- Add the report documentation&lt;/P&gt;&lt;P&gt;    LOOP AT MTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;      APPEND MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;*-- Make the fully pathed filename that report will be saved to&lt;/P&gt;&lt;P&gt;    CONCATENATE P_PATH&lt;/P&gt;&lt;P&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;/P&gt;&lt;P&gt;                '.txt'&lt;/P&gt;&lt;P&gt;      INTO LC_FULL_FILENAME.&lt;/P&gt;&lt;P&gt;    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;           USING  LC_FULL_FILENAME.&lt;/P&gt;&lt;P&gt;*-- Write out message with Program Name/Description&lt;/P&gt;&lt;P&gt;    READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.&lt;/P&gt;&lt;P&gt;      APPEND MTAB_DIRECTORY.&lt;/P&gt;&lt;P&gt;      WRITE: / MTAB_PROGRAM_TRDIR-NAME,&lt;/P&gt;&lt;P&gt;               MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-DESC = 'No description available'.&lt;/P&gt;&lt;P&gt;      MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.&lt;/P&gt;&lt;P&gt;      APPEND MTAB_DIRECTORY.&lt;/P&gt;&lt;P&gt;      WRITE: / MTAB_PROGRAM_TRDIR-NAME.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.           " BUILD_PROGRAM_DIRECTORY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM SAVE_TABLE_TO_FILE                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_TABLE            *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  F_FILENAME            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE&lt;/P&gt;&lt;P&gt;    USING  F_FILENAME.&lt;/P&gt;&lt;P&gt;  IF RB_DOS = 'X'.                  " Save file to presentation server&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WS_DOWNLOAD'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              FILENAME = F_FILENAME&lt;/P&gt;&lt;P&gt;              FILETYPE = 'ASC'&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              DATA_TAB = FTAB_TABLE&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS   = 4.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;               F_FILENAME COLOR COL_NEGATIVE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.            " Save file to application server&lt;/P&gt;&lt;P&gt;    OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT FTAB_TABLE.&lt;/P&gt;&lt;P&gt;        TRANSFER FTAB_TABLE TO F_FILENAME.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;          WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;                   F_FILENAME COLOR COL_NEGATIVE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;               F_FILENAME COLOR COL_NEGATIVE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.           " End RB_DOS&lt;/P&gt;&lt;P&gt;ENDFORM.           " SAVE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM READ_REPORT_FROM_DISK                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Read report into internal table.  Can read from local or      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      remote computer       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE&lt;/P&gt;&lt;P&gt;       USING  F_FILENAME.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;     LC_MESSAGE(128) TYPE C.&lt;/P&gt;&lt;P&gt;  CLEAR   FTAB_TABLE.&lt;/P&gt;&lt;P&gt;  REFRESH FTAB_TABLE.&lt;/P&gt;&lt;P&gt;  IF RB_DOS = 'X'.&lt;/P&gt;&lt;P&gt;    TRANSLATE F_FILENAME USING '/\'.   " correct slash for Dos PC file&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              FILENAME            = F_FILENAME&lt;/P&gt;&lt;P&gt;              FILETYPE            = 'ASC'&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              DATA_TAB            = FTAB_TABLE&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;              FILE_OPEN_ERROR     = 2&lt;/P&gt;&lt;P&gt;              FILE_READ_ERROR     = 3&lt;/P&gt;&lt;P&gt;              INVALID_TABLE_WIDTH = 4&lt;/P&gt;&lt;P&gt;              INVALID_TYPE        = 5&lt;/P&gt;&lt;P&gt;              NO_BATCH            = 6&lt;/P&gt;&lt;P&gt;              UNKNOWN_ERROR       = 7&lt;/P&gt;&lt;P&gt;              OTHERS              = 8.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;gt;&amp;lt; 0.&lt;/P&gt;&lt;P&gt;      WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSEIF RB_UNIX = 'X'.&lt;/P&gt;&lt;P&gt;    TRANSLATE F_FILENAME USING '\/'.   " correct slash for unix&lt;/P&gt;&lt;P&gt;    OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        READ DATASET F_FILENAME INTO FTAB_TABLE.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          APPEND FTAB_TABLE.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;      CLOSE DATASET F_FILENAME.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE: / 'Error reading file from remote computer'&lt;/P&gt;&lt;P&gt;  COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;             / LC_MESSAGE,&lt;/P&gt;&lt;P&gt;             / F_FILENAME.&lt;/P&gt;&lt;P&gt;      SY-SUBRC = 4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.           " READ_REPORT_FROM_DISK&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM SPLIT_INCOMING_FILE                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_PROGRAM_FILE     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_PROGRAM_SOURCE   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  ` *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_PROGRAM_TEXTS    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;                 STRUCTURE MTAB_PROGRAM_FILE&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;                 STRUCTURE MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;                 STRUCTURE MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;                STRUCTURE MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;   CHANGING FSTR_TRDIR&lt;/P&gt;&lt;P&gt;            FSTR_THEAD.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    LC_DATATYPE(4) TYPE C,             " Type of data, REPO, TEXP, RDIR&lt;/P&gt;&lt;P&gt;    LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;  LOOP AT FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    LC_PROGRAM_FILE = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;    CASE LC_PROGRAM_FILE(9).&lt;/P&gt;&lt;P&gt;      WHEN MC_TRDIR_IDENTIFIER.&lt;/P&gt;&lt;P&gt;        LC_DATATYPE = MC_TRDIR_SHORT.&lt;/P&gt;&lt;P&gt;      WHEN MC_REPORT_IDENTIFIER.&lt;/P&gt;&lt;P&gt;        LC_DATATYPE = MC_REPORT_SHORT.&lt;/P&gt;&lt;P&gt;      WHEN MC_TEXT_IDENTIFIER.&lt;/P&gt;&lt;P&gt;        LC_DATATYPE = MC_TEXT_SHORT.&lt;/P&gt;&lt;P&gt;      WHEN MC_DOC_IDENTIFIER.&lt;/P&gt;&lt;P&gt;        LC_DATATYPE = MC_DOC_SHORT.&lt;/P&gt;&lt;P&gt;      WHEN MC_THEAD_IDENTIFIER.&lt;/P&gt;&lt;P&gt;        LC_DATATYPE = MC_THEAD_SHORT.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS. " Actual contents of report, trdir, or text&lt;/P&gt;&lt;P&gt;        CASE LC_DATATYPE.&lt;/P&gt;&lt;P&gt;          WHEN MC_TRDIR_SHORT.&lt;/P&gt;&lt;P&gt;            FSTR_TRDIR = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;          WHEN MC_REPORT_SHORT.&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;            APPEND FTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;          WHEN MC_TEXT_SHORT.&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;            APPEND FTAB_PROGRAM_TEXTS.&lt;/P&gt;&lt;P&gt;          WHEN MC_THEAD_SHORT.&lt;/P&gt;&lt;P&gt;            FSTR_THEAD = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;          WHEN MC_DOC_SHORT.&lt;/P&gt;&lt;P&gt;            FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE.&lt;/P&gt;&lt;P&gt;            APPEND FTAB_PROGRAM_DOCUMENTATION.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.           " SPLIT_INCOMING_FILE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM INSERT_NEW_REPORT*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_PROGRAM_SOURCE   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  FTAB_PROGRAM_TEXTS    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  F_TRDIR               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;              STRUCTURE MTAB_PROGRAM_SOURCE&lt;/P&gt;&lt;P&gt;          FTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;               STRUCTURE MTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;          FTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;               STRUCTURE MTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;   USING  FSTR_TRDIR LIKE TRDIR&lt;/P&gt;&lt;P&gt;          FSTR_THEAD LIKE MSTR_THEAD.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    LC_OBJ_NAME LIKE E071-OBJ_NAME,&lt;/P&gt;&lt;P&gt;    LC_LINE2(40)     TYPE C,&lt;/P&gt;&lt;P&gt;    LC_ANSWER(1)     TYPE C.&lt;/P&gt;&lt;P&gt;*-- read trdir to see if the report already exists, if it does, prompt&lt;/P&gt;&lt;P&gt;*-- user to overwrite or abort.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0. " Already exists&lt;/P&gt;&lt;P&gt;    CONCATENATE 'want to overwrite report'&lt;/P&gt;&lt;P&gt;                FSTR_TRDIR-NAME&lt;/P&gt;&lt;P&gt;      INTO LC_LINE2 SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;    CONCATENATE LC_LINE2&lt;/P&gt;&lt;P&gt;                '?'&lt;/P&gt;&lt;P&gt;      INTO LC_LINE2.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              DEFAULTOPTION  = 'N'&lt;/P&gt;&lt;P&gt;              TEXTLINE1   = 'The selected report already exists, do you'&lt;/P&gt;&lt;P&gt;              TEXTLINE2      = LC_LINE2&lt;/P&gt;&lt;P&gt;              TITEL          = 'Report already exists'&lt;/P&gt;&lt;P&gt;              CANCEL_DISPLAY = SPACE&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              ANSWER         = LC_ANSWER&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS         = 1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LC_ANSWER = 'J'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF LC_ANSWER = 'J'.&lt;/P&gt;&lt;P&gt;*-- Create the TADIR entry.  (TRDIR entry created by INSERT REPORT)&lt;/P&gt;&lt;P&gt;    LC_OBJ_NAME = TRDIR-NAME.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              WI_E071_PGMID     = 'R3TR'&lt;/P&gt;&lt;P&gt;              WI_E071_OBJECT    = 'PROG'&lt;/P&gt;&lt;P&gt;              WI_E071_OBJ_NAME  = LC_OBJ_NAME&lt;/P&gt;&lt;P&gt;              WI_TADIR_DEVCLASS = '$TMP'&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              EXIT              = 3&lt;/P&gt;&lt;P&gt;              OTHERS            = 4.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*-- Create Report&lt;/P&gt;&lt;P&gt;      INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE.&lt;/P&gt;&lt;P&gt;*-- Create Texts&lt;/P&gt;&lt;P&gt;      INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS&lt;/P&gt;&lt;P&gt;             LANGUAGE SY-LANGU.&lt;/P&gt;&lt;P&gt;*-- Save Documentation&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'DOCU_UPDATE'&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                HEAD    = FSTR_THEAD&lt;/P&gt;&lt;P&gt;                STATE   = 'A'&lt;/P&gt;&lt;P&gt;                TYP     = 'E'&lt;/P&gt;&lt;P&gt;                VERSION = '1'&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                LINE    = FTAB_PROGRAM_DOCUMENTATION&lt;/P&gt;&lt;P&gt;           EXCEPTIONS&lt;/P&gt;&lt;P&gt;                OTHERS  = 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;               'Program' COLOR COL_NEGATIVE INTENSIFIED OFF,&lt;/P&gt;&lt;P&gt;               FSTR_TRDIR-NAME, 'was not loaded into SAP.'&lt;/P&gt;&lt;P&gt;                  COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE,&lt;/P&gt;&lt;P&gt;             'was not uploaded into SAP.  Action cancelled by user'&lt;/P&gt;&lt;P&gt;                 COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.           " INSERT_NEW_REPORT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_NAME         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  VALUE(F_FIELD)        *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  F_NAME                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_NAME USING VALUE(F_FIELD)&lt;/P&gt;&lt;P&gt;           CHANGING F_NAME.&lt;/P&gt;&lt;P&gt;  DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        LC_PROG LIKE D020S-PROG,&lt;/P&gt;&lt;P&gt;        LC_DNUM LIKE D020S-DNUM.&lt;/P&gt;&lt;P&gt;  TRANSLATE F_FIELD TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  refresh ltab_fields.&lt;/P&gt;&lt;P&gt;  LTAB_FIELDS-FIELDNAME = F_FIELD.&lt;/P&gt;&lt;P&gt;  append ltab_fields.&lt;/P&gt;&lt;P&gt;  LC_PROG =  SY-REPID .&lt;/P&gt;&lt;P&gt;  LC_DNUM =  SY-DYNNR .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DYNP_VALUES_READ'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            DYNAME     = LC_PROG&lt;/P&gt;&lt;P&gt;            DYNUMB     = LC_DNUM&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            dynpfields = ltab_fields&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS     = 01.&lt;/P&gt;&lt;P&gt;  read table ltab_fields index 1.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    F_NAME = LTAB_FIELDS-FIELDVALUE.&lt;/P&gt;&lt;P&gt;    refresh ltab_fields.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'F4_USER'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            OBJECT = F_NAME&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            RESULT = F_NAME.&lt;/P&gt;&lt;P&gt;ENDFORM.           " GET_NAME&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program Texts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DIR             File Download Options (File Selection)&lt;/P&gt;&lt;P&gt;FIL             File Options      &lt;/P&gt;&lt;P&gt;FNA             Enter filename below (under File Options)&lt;/P&gt;&lt;P&gt;H01             Prog Name&lt;/P&gt;&lt;P&gt;H03             Program Description&lt;/P&gt;&lt;P&gt;SNG             Upload a single file&lt;/P&gt;&lt;P&gt;UDL             Upload to SAP/Download from SAP&lt;/P&gt;&lt;P&gt;UPL             File Upload Options&lt;/P&gt;&lt;P&gt;R               Backup/Restore program source code with texts&lt;/P&gt;&lt;P&gt;P_PATH          Path to save programs to&lt;/P&gt;&lt;P&gt;RB_DOS          Files on local computer&lt;/P&gt;&lt;P&gt;RB_DOWN         Download Programs&lt;/P&gt;&lt;P&gt;RB_FILE         Upload a single file&lt;/P&gt;&lt;P&gt;RB_LIST         Select program(s) from a list           &lt;/P&gt;&lt;P&gt;RB_UNIX         Files on remote computer                &lt;/P&gt;&lt;P&gt;RB_UP           Upload Programs to SAP                  &lt;/P&gt;&lt;P&gt;S_CDAT          Date Created        &lt;/P&gt;&lt;P&gt;S_CNAM          Created by UserID   &lt;/P&gt;&lt;P&gt;S_NAME          Program Name        &lt;/P&gt;&lt;P&gt;S_SUBC          Program Type        &lt;/P&gt;&lt;P&gt;S_UDAT          Date Changed        &lt;/P&gt;&lt;P&gt;S_UNAM          Last Changed by UserID      &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Joy.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2008 14:53:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170969#M997195</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-14T14:53:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170970#M997196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;Check this link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://abap4.tripod.com/Upload_and_Download_ABAP_Source_Code.html" target="test_blank"&gt;http://abap4.tripod.com/Upload_and_Download_ABAP_Source_Code.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Adil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jul 2008 15:08:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170970#M997196</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-14T15:08:44Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170971#M997197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;If my program is having screens. How download and upload these screens.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sayanan Damerla&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2008 06:08:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170971#M997197</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-15T06:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170972#M997198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;Use this report for uploading and downloading the dialog programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;REPTRAN&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure whether u can use same one for executable report with screens. I think it should work. Give  a try and get back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Vinod.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2008 09:55:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170972#M997198</guid>
      <dc:creator>vinod_vemuru2</dc:creator>
      <dc:date>2008-07-15T09:55:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to Upload Program Source Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170973#M997199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vinod,&lt;/P&gt;&lt;P&gt;This is for Downloading the Programs. It wont useful for uploading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sayanna Damerla&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jul 2008 11:48:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-upload-program-source-code/m-p/4170973#M997199</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-15T11:48:58Z</dc:date>
    </item>
  </channel>
</rss>

