<?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: DATASET in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803378#M654871</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ravindar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Code to read a file from application server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF g_t_data OCCURS 0,&lt;/P&gt;&lt;P&gt;        content(2000),&lt;/P&gt;&lt;P&gt;       END OF g_t_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_file FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET p_file INTO g_t_data-content.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        APPEND g_t_data.&lt;/P&gt;&lt;P&gt;        CLEAR g_t_data.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLOSE DATASET  p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***code to get all the files in a directory on application server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF g_t_searchpoints OCCURS 10,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c,            " name of directory.&lt;/P&gt;&lt;P&gt;        sp_name(75) TYPE c,            " name of entry. (may end with *)&lt;/P&gt;&lt;P&gt;        sp_cs(10)   TYPE c, " ContainsString pattern for name.&lt;/P&gt;&lt;P&gt;      END OF g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF file,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c, " name of directory. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        name(75)    TYPE c, " name of entry. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        type(10)    TYPE c,            " type of entry.&lt;/P&gt;&lt;P&gt;        len(8)      TYPE p,            " length in bytes.&lt;/P&gt;&lt;P&gt;        owner(8)    TYPE c,            " owner of the entry.&lt;/P&gt;&lt;P&gt;        mtime(6)    TYPE p, " last modification date, seconds since 1970&lt;/P&gt;&lt;P&gt;        mode(9)     TYPE c, " like "rwx-r-x--x": protection mode.&lt;/P&gt;&lt;P&gt;        useable(1)  TYPE c,&lt;/P&gt;&lt;P&gt;        subrc(4)    TYPE c,&lt;/P&gt;&lt;P&gt;        errno(3)    TYPE c,&lt;/P&gt;&lt;P&gt;        errmsg(40)  TYPE c,&lt;/P&gt;&lt;P&gt;        mod_date    TYPE d,&lt;/P&gt;&lt;P&gt;        mod_time(8) TYPE c,            " hh:mm:ss&lt;/P&gt;&lt;P&gt;        seen(1)     TYPE c,&lt;/P&gt;&lt;P&gt;        changed(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      END OF file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF g_t_file_list OCCURS 100,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c, " name of directory. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        name(75)    TYPE c, " name of entry. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        type(10)    TYPE c,            " type of entry.&lt;/P&gt;&lt;P&gt;        len(8)      TYPE p,            " length in bytes.&lt;/P&gt;&lt;P&gt;        owner(8)    TYPE c,            " owner of the entry.&lt;/P&gt;&lt;P&gt;        mtime(6)    TYPE p, " last modification date, seconds since 1970&lt;/P&gt;&lt;P&gt;        mode(9)     TYPE c, " like "rwx-r-x--x": protection mode.&lt;/P&gt;&lt;P&gt;        useable(1)  TYPE c,&lt;/P&gt;&lt;P&gt;        subrc(4)    TYPE c,&lt;/P&gt;&lt;P&gt;        errno(3)    TYPE c,&lt;/P&gt;&lt;P&gt;        errmsg(40)  TYPE c,&lt;/P&gt;&lt;P&gt;        mod_date    TYPE d,&lt;/P&gt;&lt;P&gt;        mod_time(8) TYPE c,            " hh:mm:ss&lt;/P&gt;&lt;P&gt;        seen(1)     TYPE c,&lt;/P&gt;&lt;P&gt;        changed(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      END OF g_t_file_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : sap_no(1)   VALUE ' ',&lt;/P&gt;&lt;P&gt;       srt(1)      VALUE 'T',&lt;/P&gt;&lt;P&gt;       no_cs       VALUE ' ',            " no MUST_ContainString&lt;/P&gt;&lt;P&gt;       g_f_start TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; DATA : l_f_val.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-dirname = p_sfile.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-sp_name = '*'.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-sp_cs = ''.&lt;/P&gt;&lt;P&gt;  APPEND g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT g_t_searchpoints.&lt;/P&gt;&lt;P&gt;    PERFORM fill_file_list USING g_t_searchpoints-dirname&lt;/P&gt;&lt;P&gt;                                 g_t_searchpoints-sp_name&lt;/P&gt;&lt;P&gt;                                 g_t_searchpoints-sp_cs.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT g_t_file_list BY mod_date DESCENDING&lt;/P&gt;&lt;P&gt;                        mtime DESCENDING.&lt;/P&gt;&lt;P&gt;***Check the file name based on your requirement.&lt;/P&gt;&lt;P&gt;***my requirement is to get the latest file in that directory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT g_t_file_list WHERE name CP ABC*'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_t_file_list-useable IS INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE g_t_file_list.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_t_file_list-name CP 'ABC*' AND l_f_val IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE g_t_file_list-dirname g_t_file_list-name&lt;/P&gt;&lt;P&gt;                                        INTO g_f_file&lt;/P&gt;&lt;P&gt;      l_f_val = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_file_list&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&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;      text&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;P_G_T_SEARCHPOINTS_DIRNAME  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_T_SEARCHPOINTS_SP_NAME  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_T_SEARCHPOINTS_SP_CS  text&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 fill_file_list USING  a_dir_name a_generic_name a_must_cs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_DIR_NAME ....... directory name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_GENERIC_NAME ... generic filename (may end with *)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_MUST_CS ........ a contains pattern for legal filenames  OR NO_CS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: errcnt(2) TYPE p VALUE 0.&lt;/P&gt;&lt;P&gt;  IF a_dir_name IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e220(s1).     " 'Place cursor on valid line !'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_FINISH'             " just to be sure&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD g_t_file_list-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD g_t_file_list-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_START' ID 'DIR'    FIELD a_dir_name&lt;/P&gt;&lt;P&gt;                          ID 'FILE'   FIELD a_generic_name&lt;/P&gt;&lt;P&gt;                          ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;                          ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e204(s1) WITH g_t_file_list-errmsg file-errmsg.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    CLEAR file.&lt;/P&gt;&lt;P&gt;    CALL 'C_DIR_READ_NEXT'&lt;/P&gt;&lt;P&gt;      ID 'TYPE'   FIELD file-type&lt;/P&gt;&lt;P&gt;      ID 'NAME'   FIELD file-name&lt;/P&gt;&lt;P&gt;      ID 'LEN'    FIELD file-len&lt;/P&gt;&lt;P&gt;      ID 'OWNER'  FIELD file-owner&lt;/P&gt;&lt;P&gt;      ID 'MTIME'  FIELD file-mtime&lt;/P&gt;&lt;P&gt;      ID 'MODE'   FIELD file-mode&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;    file-dirname = a_dir_name.&lt;/P&gt;&lt;P&gt;    MOVE sy-subrc TO file-subrc.&lt;/P&gt;&lt;P&gt;    CASE sy-subrc.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        CLEAR: file-errno, file-errmsg.&lt;/P&gt;&lt;P&gt;        CASE file-type(1).&lt;/P&gt;&lt;P&gt;          WHEN 'F'.                    " normal file.&lt;/P&gt;&lt;P&gt;            PERFORM filename_useable(rswatch0) USING file-name&lt;/P&gt;&lt;P&gt;                                                     file-useable.&lt;/P&gt;&lt;P&gt;          WHEN 'f'.                    " normal file.&lt;/P&gt;&lt;P&gt;            PERFORM filename_useable(rswatch0) USING file-name&lt;/P&gt;&lt;P&gt;                                                     file-useable.&lt;/P&gt;&lt;P&gt;          WHEN OTHERS. " directory, device, fifo, socket,...&lt;/P&gt;&lt;P&gt;            MOVE sap_no  TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;        IF file-len = 0.&lt;/P&gt;&lt;P&gt;          MOVE sap_no TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS.                     " SY-SUBRC &amp;gt;= 2&lt;/P&gt;&lt;P&gt;        ADD 1 TO errcnt.&lt;/P&gt;&lt;P&gt;        IF errcnt &amp;gt; 10.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 5.&lt;/P&gt;&lt;P&gt;          MOVE: '???' TO file-type,&lt;/P&gt;&lt;P&gt;                '???' TO file-owner,&lt;/P&gt;&lt;P&gt;                '???' TO file-mode.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MOVE sap_no TO file-useable.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    PERFORM p6_to_date_time_tz(rstr0400) USING file-mtime&lt;/P&gt;&lt;P&gt;                                               file-mod_time&lt;/P&gt;&lt;P&gt;                                               file-mod_date.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  * Does the filename contains the requested pattern?&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  * Then store it, else forget it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF a_must_cs = no_cs.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING file TO g_t_file_list.&lt;/P&gt;&lt;P&gt;      APPEND g_t_file_list.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      IF file-name CS a_must_cs.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING file TO g_t_file_list.&lt;/P&gt;&lt;P&gt;        APPEND g_t_file_list.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_FINISH'&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD g_t_file_list-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD g_t_file_list-errmsg.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE: / 'C_DIR_READ_FINISH', 'SUBRC', sy-subrc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF srt = 'T'.&lt;/P&gt;&lt;P&gt;    SORT g_t_file_list BY mtime DESCENDING name ASCENDING.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SORT g_t_file_list BY name ASCENDING mtime DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_file_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if useful..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Phani.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 Sep 2007 08:17:33 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-12T08:17:33Z</dc:date>
    <item>
      <title>DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803373#M654866</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can any one provide me the code for dataset .........&lt;/P&gt;&lt;P&gt;I want to read a file on application server.......before that i want to chk if it exits or not...........if found, i need to validate the name of the file........?&lt;/P&gt;&lt;P&gt;Plz provide me the code...............&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:07:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803373#M654866</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:07:53Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803374#M654867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ravindar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Open Dataset is used to read or write on to application server ... other than that i am not sure that there exists any way to do the same ... here is a short description for that &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FILE HANDLING IN SAP&lt;/P&gt;&lt;P&gt;Introduction&lt;/P&gt;&lt;P&gt;&amp;#149; Files on application server are sequential files.&lt;/P&gt;&lt;P&gt;&amp;#149; Files on presentation server / workstation are local files. &lt;/P&gt;&lt;P&gt;&amp;#149; A sequential file is also called a dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Handling of Sequential file&lt;/P&gt;&lt;P&gt;Three steps are involved in sequential file handling&lt;/P&gt;&lt;P&gt;&amp;#149; OPEN&lt;/P&gt;&lt;P&gt;&amp;#149; PROCESS&lt;/P&gt;&lt;P&gt;&amp;#149; CLOSE&lt;/P&gt;&lt;P&gt;Here processing of file can be READING a file or WRITING on to a file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN FILE&lt;/P&gt;&lt;P&gt;Before data can be processed, a file needs to be opened.&lt;/P&gt;&lt;P&gt;After processing file is closed.&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;OPEN DATASET &amp;lt;file name&amp;gt; FOR {OUTPUT/INPUT/APPENDING}&lt;/P&gt;&lt;P&gt;IN {TEXT/BINARY} MODE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This statement returns SY_SUBRC as 0 for successful opening of file or 8, if unsuccessful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OUTPUT: Opens the file for writing. If the dataset already exists, this will place the cursor at the start of the dataset,&lt;/P&gt;&lt;P&gt;the old contents get deleted at the end of the program or when the CLOSE DATASET is encountered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INPUT: Opens a file for READ and places the cursor at the beginning of the file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FOR APPENDING: Opens the file for writing and places the cursor at the end of file. If the file does not exist, it is generated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BINARY MODE: The READ or TRANSFER will be character wise. Each time &amp;#145;n&amp;#146;&amp;#146; characters are READ or transferred.&lt;/P&gt;&lt;P&gt;The next READ or TRANSFER will start from the next character position and not on the next line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IN TEXT MODE: The READ or TRANSFER will start at the beginning of a new line each time.&lt;/P&gt;&lt;P&gt;If for READ, the destination is shorter than the source, it gets truncated. &lt;/P&gt;&lt;P&gt;If destination is longer, then it is padded with spaces.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Defaults: If nothing is mentioned, then defaults are FOR INPUT and in BINARY MODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS FILE:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processing a file involves READing the file or Writing on to file TRANSFER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRANSFER Statement&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;TRANSFER &amp;lt;field&amp;gt; TO &amp;lt;file name&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;lt;Field&amp;gt; can also be a field string / work area / DDIC structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each transfer statement writes a statement to the dataset. In binary mode, it writes the length of the field to the dataset.&lt;/P&gt;&lt;P&gt;In text mode, it writes one line to the dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the file is not already open, TRANSFER tries to OPEN file FOR OUTPUT (IN BINARY MODE) or using the last OPEN DATASET statement for this file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF FILE HANDLING, TRANSFER IS THE ONLY STATEMENT WHICH DOES NOT RETURN SY-SUBRC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ Statement&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;READ DATASET &amp;lt;file name&amp;gt; INTO &amp;lt;field&amp;gt;. &lt;/P&gt;&lt;P&gt;&amp;lt;Field&amp;gt; can also be a field string / work area / DDIC structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each READ will get one record from the dataset. &lt;/P&gt;&lt;P&gt;In binary mode it reads the length of the field and in text mode it reads each line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLOSE FILE: &lt;/P&gt;&lt;P&gt;The program will close all sequential files, which are open at the end of the program. &lt;/P&gt;&lt;P&gt;However, it is a good programming practice to explicitly close all the datasets that were opened.&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;CLOSE DATASET &amp;lt;file name&amp;gt;.&lt;/P&gt;&lt;P&gt;SY-SUBRC will be set to 0 or 8 depending on whether the CLOSE is successful or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE FILE:&lt;/P&gt;&lt;P&gt;A dataset can be deleted.&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;DELETE DATASET &amp;lt;file name&amp;gt;.&lt;/P&gt;&lt;P&gt;SY-SUBRC will be set to 0 or 8 depending on whether the DELETE is successful or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pseudo logic for processing the sequential files:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For reading:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Open dataset for input in a particular mode.&lt;/P&gt;&lt;P&gt;Start DO loop.&lt;/P&gt;&lt;P&gt;Read dataset into a field.&lt;/P&gt;&lt;P&gt;If READ is not successful.&lt;/P&gt;&lt;P&gt;Exit the loop.&lt;/P&gt;&lt;P&gt;Endif.&lt;/P&gt;&lt;P&gt;Do relevant processing for that record.&lt;/P&gt;&lt;P&gt;End the do loop.&lt;/P&gt;&lt;P&gt;Close the dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For writing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Open dataset for output / Appending in a particular mode.&lt;/P&gt;&lt;P&gt;Populate the field that is to be transferred.&lt;/P&gt;&lt;P&gt;TRANSFER the filed to a dataset.&lt;/P&gt;&lt;P&gt;Close the dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Reward If Helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:11:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803374#M654867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:11:57Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803375#M654868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING UTF-8.&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 P_FILE INTO WA_ITAB.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;SPLIT WA_ITAB AT '#' INTO ITAB-WERKS&lt;/P&gt;&lt;P&gt;ITAB-MATNR&lt;/P&gt;&lt;P&gt;ITAB-EKGRP&lt;/P&gt;&lt;P&gt;ITAB-LIFNR&lt;/P&gt;&lt;P&gt;ITAB-EVERS&lt;/P&gt;&lt;P&gt;L_MENGE.&lt;/P&gt;&lt;P&gt;ITAB-MENGE = L_MENGE.&lt;/P&gt;&lt;P&gt;APPEND ITAB.&lt;/P&gt;&lt;P&gt;CLEAR ITAB.&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;ENDIF.&lt;/P&gt;&lt;P&gt;CLOSE DATASET P_FILE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also check the answered thread: - &lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3136123"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points for helpful answers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;hari krsihna&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:14:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803375#M654868</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:14:23Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803376#M654869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ravinder...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This code can help u...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;How to read the Data from Tab delimited files. from APPLICATION SERVER&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;DATA: V_RECORD(200).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; READ DATASET P_FILE INTO V_RECORD.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SPLIT V_Record at CL_ABAP_CHAR_UTILITIES=&amp;gt;HORIZONTAL_TAB&lt;/P&gt;&lt;P&gt;                            INTO WA-FIELD1 WA-FIELD2.&lt;/P&gt;&lt;P&gt;APPEND WA TO ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if Helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:15:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803376#M654869</guid>
      <dc:creator>varma_narayana</dc:creator>
      <dc:date>2007-09-12T08:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803377#M654870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is the code....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN DATASET P_FILE FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE E010(AD) WITH TEXT-E50  P_FILE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET P_FILE INTO OUTPUT_TAB.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC  NE 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND OUTPUT_TAB.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if it useful..................&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:15:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803377#M654870</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803378#M654871</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ravindar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Code to read a file from application server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF g_t_data OCCURS 0,&lt;/P&gt;&lt;P&gt;        content(2000),&lt;/P&gt;&lt;P&gt;       END OF g_t_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_file FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET p_file INTO g_t_data-content.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        APPEND g_t_data.&lt;/P&gt;&lt;P&gt;        CLEAR g_t_data.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLOSE DATASET  p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***code to get all the files in a directory on application server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF g_t_searchpoints OCCURS 10,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c,            " name of directory.&lt;/P&gt;&lt;P&gt;        sp_name(75) TYPE c,            " name of entry. (may end with *)&lt;/P&gt;&lt;P&gt;        sp_cs(10)   TYPE c, " ContainsString pattern for name.&lt;/P&gt;&lt;P&gt;      END OF g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF file,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c, " name of directory. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        name(75)    TYPE c, " name of entry. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        type(10)    TYPE c,            " type of entry.&lt;/P&gt;&lt;P&gt;        len(8)      TYPE p,            " length in bytes.&lt;/P&gt;&lt;P&gt;        owner(8)    TYPE c,            " owner of the entry.&lt;/P&gt;&lt;P&gt;        mtime(6)    TYPE p, " last modification date, seconds since 1970&lt;/P&gt;&lt;P&gt;        mode(9)     TYPE c, " like "rwx-r-x--x": protection mode.&lt;/P&gt;&lt;P&gt;        useable(1)  TYPE c,&lt;/P&gt;&lt;P&gt;        subrc(4)    TYPE c,&lt;/P&gt;&lt;P&gt;        errno(3)    TYPE c,&lt;/P&gt;&lt;P&gt;        errmsg(40)  TYPE c,&lt;/P&gt;&lt;P&gt;        mod_date    TYPE d,&lt;/P&gt;&lt;P&gt;        mod_time(8) TYPE c,            " hh:mm:ss&lt;/P&gt;&lt;P&gt;        seen(1)     TYPE c,&lt;/P&gt;&lt;P&gt;        changed(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      END OF file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF g_t_file_list OCCURS 100,&lt;/P&gt;&lt;P&gt;        dirname(75) TYPE c, " name of directory. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        name(75)    TYPE c, " name of entry. (possibly truncated.)&lt;/P&gt;&lt;P&gt;        type(10)    TYPE c,            " type of entry.&lt;/P&gt;&lt;P&gt;        len(8)      TYPE p,            " length in bytes.&lt;/P&gt;&lt;P&gt;        owner(8)    TYPE c,            " owner of the entry.&lt;/P&gt;&lt;P&gt;        mtime(6)    TYPE p, " last modification date, seconds since 1970&lt;/P&gt;&lt;P&gt;        mode(9)     TYPE c, " like "rwx-r-x--x": protection mode.&lt;/P&gt;&lt;P&gt;        useable(1)  TYPE c,&lt;/P&gt;&lt;P&gt;        subrc(4)    TYPE c,&lt;/P&gt;&lt;P&gt;        errno(3)    TYPE c,&lt;/P&gt;&lt;P&gt;        errmsg(40)  TYPE c,&lt;/P&gt;&lt;P&gt;        mod_date    TYPE d,&lt;/P&gt;&lt;P&gt;        mod_time(8) TYPE c,            " hh:mm:ss&lt;/P&gt;&lt;P&gt;        seen(1)     TYPE c,&lt;/P&gt;&lt;P&gt;        changed(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      END OF g_t_file_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : sap_no(1)   VALUE ' ',&lt;/P&gt;&lt;P&gt;       srt(1)      VALUE 'T',&lt;/P&gt;&lt;P&gt;       no_cs       VALUE ' ',            " no MUST_ContainString&lt;/P&gt;&lt;P&gt;       g_f_start TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; DATA : l_f_val.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-dirname = p_sfile.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-sp_name = '*'.&lt;/P&gt;&lt;P&gt;  g_t_searchpoints-sp_cs = ''.&lt;/P&gt;&lt;P&gt;  APPEND g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR g_t_searchpoints.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT g_t_searchpoints.&lt;/P&gt;&lt;P&gt;    PERFORM fill_file_list USING g_t_searchpoints-dirname&lt;/P&gt;&lt;P&gt;                                 g_t_searchpoints-sp_name&lt;/P&gt;&lt;P&gt;                                 g_t_searchpoints-sp_cs.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT g_t_file_list BY mod_date DESCENDING&lt;/P&gt;&lt;P&gt;                        mtime DESCENDING.&lt;/P&gt;&lt;P&gt;***Check the file name based on your requirement.&lt;/P&gt;&lt;P&gt;***my requirement is to get the latest file in that directory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT g_t_file_list WHERE name CP ABC*'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_t_file_list-useable IS INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE g_t_file_list.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_t_file_list-name CP 'ABC*' AND l_f_val IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE g_t_file_list-dirname g_t_file_list-name&lt;/P&gt;&lt;P&gt;                                        INTO g_f_file&lt;/P&gt;&lt;P&gt;      l_f_val = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_file_list&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&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;      text&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;P_G_T_SEARCHPOINTS_DIRNAME  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_T_SEARCHPOINTS_SP_NAME  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_T_SEARCHPOINTS_SP_CS  text&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 fill_file_list USING  a_dir_name a_generic_name a_must_cs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_DIR_NAME ....... directory name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_GENERIC_NAME ... generic filename (may end with *)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;A_MUST_CS ........ a contains pattern for legal filenames  OR NO_CS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: errcnt(2) TYPE p VALUE 0.&lt;/P&gt;&lt;P&gt;  IF a_dir_name IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE e220(s1).     " 'Place cursor on valid line !'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_FINISH'             " just to be sure&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD g_t_file_list-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD g_t_file_list-errmsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_START' ID 'DIR'    FIELD a_dir_name&lt;/P&gt;&lt;P&gt;                          ID 'FILE'   FIELD a_generic_name&lt;/P&gt;&lt;P&gt;                          ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;                          ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e204(s1) WITH g_t_file_list-errmsg file-errmsg.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    CLEAR file.&lt;/P&gt;&lt;P&gt;    CALL 'C_DIR_READ_NEXT'&lt;/P&gt;&lt;P&gt;      ID 'TYPE'   FIELD file-type&lt;/P&gt;&lt;P&gt;      ID 'NAME'   FIELD file-name&lt;/P&gt;&lt;P&gt;      ID 'LEN'    FIELD file-len&lt;/P&gt;&lt;P&gt;      ID 'OWNER'  FIELD file-owner&lt;/P&gt;&lt;P&gt;      ID 'MTIME'  FIELD file-mtime&lt;/P&gt;&lt;P&gt;      ID 'MODE'   FIELD file-mode&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD file-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD file-errmsg.&lt;/P&gt;&lt;P&gt;    file-dirname = a_dir_name.&lt;/P&gt;&lt;P&gt;    MOVE sy-subrc TO file-subrc.&lt;/P&gt;&lt;P&gt;    CASE sy-subrc.&lt;/P&gt;&lt;P&gt;      WHEN 0.&lt;/P&gt;&lt;P&gt;        CLEAR: file-errno, file-errmsg.&lt;/P&gt;&lt;P&gt;        CASE file-type(1).&lt;/P&gt;&lt;P&gt;          WHEN 'F'.                    " normal file.&lt;/P&gt;&lt;P&gt;            PERFORM filename_useable(rswatch0) USING file-name&lt;/P&gt;&lt;P&gt;                                                     file-useable.&lt;/P&gt;&lt;P&gt;          WHEN 'f'.                    " normal file.&lt;/P&gt;&lt;P&gt;            PERFORM filename_useable(rswatch0) USING file-name&lt;/P&gt;&lt;P&gt;                                                     file-useable.&lt;/P&gt;&lt;P&gt;          WHEN OTHERS. " directory, device, fifo, socket,...&lt;/P&gt;&lt;P&gt;            MOVE sap_no  TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDCASE.&lt;/P&gt;&lt;P&gt;        IF file-len = 0.&lt;/P&gt;&lt;P&gt;          MOVE sap_no TO file-useable.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      WHEN 1.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS.                     " SY-SUBRC &amp;gt;= 2&lt;/P&gt;&lt;P&gt;        ADD 1 TO errcnt.&lt;/P&gt;&lt;P&gt;        IF errcnt &amp;gt; 10.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 5.&lt;/P&gt;&lt;P&gt;          MOVE: '???' TO file-type,&lt;/P&gt;&lt;P&gt;                '???' TO file-owner,&lt;/P&gt;&lt;P&gt;                '???' TO file-mode.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MOVE sap_no TO file-useable.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    PERFORM p6_to_date_time_tz(rstr0400) USING file-mtime&lt;/P&gt;&lt;P&gt;                                               file-mod_time&lt;/P&gt;&lt;P&gt;                                               file-mod_date.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  * Does the filename contains the requested pattern?&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  * Then store it, else forget it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF a_must_cs = no_cs.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING file TO g_t_file_list.&lt;/P&gt;&lt;P&gt;      APPEND g_t_file_list.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      IF file-name CS a_must_cs.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING file TO g_t_file_list.&lt;/P&gt;&lt;P&gt;        APPEND g_t_file_list.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL 'C_DIR_READ_FINISH'&lt;/P&gt;&lt;P&gt;      ID 'ERRNO'  FIELD g_t_file_list-errno&lt;/P&gt;&lt;P&gt;      ID 'ERRMSG' FIELD g_t_file_list-errmsg.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE: / 'C_DIR_READ_FINISH', 'SUBRC', sy-subrc.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF srt = 'T'.&lt;/P&gt;&lt;P&gt;    SORT g_t_file_list BY mtime DESCENDING name ASCENDING.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SORT g_t_file_list BY name ASCENDING mtime DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_file_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if useful..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Phani.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:17:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803378#M654871</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:17:33Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803379#M654872</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;&amp;lt;b&amp;gt;**** Uploading from Application Server&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    T_APPREAD LIKE STANDARD TABLE&lt;/P&gt;&lt;P&gt;           OF FS_DATA&lt;/P&gt;&lt;P&gt;         WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;OPEN DATASET&amp;lt;/b&amp;gt; W_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc ne 0.  " &amp;lt;b&amp;gt;Validate file name&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt; &amp;lt;b&amp;gt; message 'No file found' type 'I'.&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.  &lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET W_FNAME INTO T_APPREAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        APPEND T_APPREAD.&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;&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CLOSE DATASET W_FNAME.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:18:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803379#M654872</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:18:56Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803380#M654873</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;This is the Program code for Application Server files.&lt;/P&gt;&lt;P&gt;Data has to be in a Txt file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT YRP00_20 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : IT_CARR TYPE TABLE OF SCARR,&lt;/P&gt;&lt;P&gt;WA_CARR TYPE SCARR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters : p_dsn(30) DEFAULT 'AIRLINE.TXT'. "Give the path on App server&lt;/P&gt;&lt;P&gt;DATA : V_TEXT(40).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Writing data to file &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN DATASET P_DSN FOR OUTPUT&lt;/P&gt;&lt;P&gt;IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;WRITE:/ 'FILE NOT OPENED' .&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM SCARR INTO TABLE IT_CARR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_CARR INTO WA_CARR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRANSFER WA_CARR TO P_DSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLOSE DATASET P_DSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***reading from file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN DATASET P_DSN FOR INPUT&lt;/P&gt;&lt;P&gt;IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ DATASET P_DSN INTO WA_CARR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/ WA_CARR-CARRID,&lt;/P&gt;&lt;P&gt;WA_CARR-CARRNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLOSE DATASET P_DSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assign points if helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt; Sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 08:19:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803380#M654873</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T08:19:15Z</dc:date>
    </item>
    <item>
      <title>Re: DATASET</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803381#M654874</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Phani,&lt;/P&gt;&lt;P&gt;             Your code has some errors.........can u chk them and resend the code&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Sep 2007 13:13:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dataset/m-p/2803381#M654874</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-12T13:13:16Z</dc:date>
    </item>
  </channel>
</rss>

