<?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: Customer screen - maitaining element list in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728906#M633354</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the below program ,this program upload /download the complete program.&lt;/P&gt;&lt;P&gt;This one i got from other thread.&lt;/P&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;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;Change Log :                 *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;July 5, 1999         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - Combined existing programs that did the upload and download into*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - one program.            *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - Changed format that the reports are saved in to be compatible   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     with Wolfgang Morgenthaler's upload/download program(YSTRASN00  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     at &lt;A href="https://community.sap.com/www.antarcon.de)" target="test_blank"&gt;www.antarcon.de)&lt;/A&gt;.  Major differences between this program and*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Wolfgang's are:&lt;/P&gt;&lt;/LI&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;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Sep 2007 16:47:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-04T16:47:39Z</dc:date>
    <item>
      <title>Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728899#M633347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am creating a customer screen via SE51, but do not know how to maitain element list... I am sure it should be very simple, but when I open element list I can see just one input line - for OK code. How to put other ones?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Will reward,&lt;/P&gt;&lt;P&gt;Mindaugas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 15:37:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728899#M633347</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T15:37:12Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728900#M633348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if you do not design layout then elementary list will have one that is called ok_code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try to click on layout and maintain input fields and now see the elementary list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 15:41:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728900#M633348</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T15:41:06Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728901#M633349</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;Create the Fields in the Screen, just Drag and Drop, &lt;/P&gt;&lt;P&gt;you will find the Input box, out pt box and other elements in the left side, then double click on that field which you create in the screen then a screen will come, there you can maintain all the attributes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt; Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 15:42:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728901#M633349</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T15:42:55Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728902#M633350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By default, data in lists is displayed in multiple columns. You can view the data and apply different functions to the data, such as sorting, filtering, and making calculations. The data can also be displayed in the list in different ways. Exactly which interface elements (UI elements) are used to display the data depends on your application. &lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/43/57604b4e3a30b4e10000000a11466f/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/43/57604b4e3a30b4e10000000a11466f/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 15:43:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728902#M633350</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T15:43:35Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728903#M633351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check this SAP online help perhaps it may help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_47x200/helpdata/en/e9/635fa6e01e11d195490000e82de14a/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_47x200/helpdata/en/e9/635fa6e01e11d195490000e82de14a/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ferry Lianto&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 15:48:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728903#M633351</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T15:48:11Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728904#M633352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks for help,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is it possible to export / import a Screen or I have repaint it manually by dragging and dropping items of the screen?&lt;/P&gt;&lt;P&gt;I mean I have this screen in other system and systems are not connected, so no transports are available.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;M.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 16:29:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728904#M633352</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T16:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728905#M633353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;in SE51 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;To Download&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;Utilities --&amp;gt; More Utilities --&amp;gt; Download&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To Upload&lt;/P&gt;&lt;P&gt;Utilities --&amp;gt; More Utilities --&amp;gt; Upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt; Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 16:36:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728905#M633353</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T16:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: Customer screen - maitaining element list</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728906#M633354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the below program ,this program upload /download the complete program.&lt;/P&gt;&lt;P&gt;This one i got from other thread.&lt;/P&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;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;Change Log :                 *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;July 5, 1999         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - Combined existing programs that did the upload and download into*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - one program.            *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   - Changed format that the reports are saved in to be compatible   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     with Wolfgang Morgenthaler's upload/download program(YSTRASN00  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     at &lt;A href="https://community.sap.com/www.antarcon.de)" target="test_blank"&gt;www.antarcon.de)&lt;/A&gt;.  Major differences between this program and*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Wolfgang's are:&lt;/P&gt;&lt;/LI&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;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Sep 2007 16:47:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/customer-screen-maitaining-element-list/m-p/2728906#M633354</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-04T16:47:39Z</dc:date>
    </item>
  </channel>
</rss>

