Skip to Content
author's profile photo Former Member
Former Member

Help need statement open

Hi all,

what does this stement mean

open dataset io_file for input in text mode.

open dataset io_file for output in text mode message msg.

can i see the data while debugging when the control triggers these statements

Thanks in advance

Add comment
10|10000 characters needed characters exceeded

7 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 04:04 PM

    hi,

    you cant see the data in debugging mode.

    the Purpose of Open data set is:

    OPEN DATASET <file name> FOR {OUTPUT/INPUT/APPENDING}

    IN {TEXT/BINARY} MODE

    This statement returns SY_SUBRC as 0 for successful opening of file or 8, if unsuccessful.

    OUTPUT: Opens the file for writing. If the dataset already exists, this will place the cursor at the start of the dataset, the old contents get deleted at the end of the program or when the CLOSE DATASET is encountered.

    INPUT: Opens a file for READ and places the cursor at the beginning of the file.

    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.

    BINARY MODE: The READ or TRANSFER will be character wise. Each time ‘n’’ characters are READ or transferred. The next READ or TRANSFER will start from the next character position and not on the next line.

    IN TEXT MODE: The READ or TRANSFER will start at the beginning of a new line each time. If for READ, the destination is shorter than the source, it gets truncated. If destination is longer, then it is padded with spaces.

    Defaults: If nothing is mentioned, then defaults are FOR INPUT and in BINARY MODE.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      hi,

      <b>open dataset io_file for input in text mode.</b>

      this opens the dataset i.e, file stred in the application server and keeps the cursor at the beginning of the file and is ready to read the file line by line.....

      <b>open dataset io_file for output in text mode message msg</b>.

      this opens the dataset and is ready for writing on to that by placing the cursor at the start of the file....

      Regards,

      Santosh

  • Posted on Aug 03, 2006 at 04:05 PM

    These statements are used for opening files on the application server for writing to and reading from. You can write to a file on the app server by using the TRANSFER statement and you can read from the file using the READ DATASET statement. You can then close the file using the statement CLOSE DATASET.

    Regards,

    Rich Heilman

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 04:05 PM

    Hi Suchitra..

    open dataset io_file for input in text mode....opens the application file in read mode and the data is read line by line

    open dataset io_file for output in text mode message msg.

    If an error occurs opening the file, the corresponding message of the operating system is stored in the field msg.

    Regards,

    VIdya

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 04:13 PM

    <b>open dataset io_file for input in text mode.</b>

    this will open a file in input(read) mode.

    <b>open dataset io_file for output in text mode message msg.</b>

    this will open a file in write mode,

    the addition MESSAGE MSG will be used to know if for any reason the file opening in write mode is failed,the error will be passed to MSG field.

    you can check the MSG field after the OPEN DATASET statement.

    regards

    srikanth

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 04:32 PM

    Hi suchitra,

    OPEN DATASET <dsn> FOR .... IN TEXT MODE.

    If you read from or write to a file that is open in text mode, the data is transferred line by line. The system assumes that the file has a line structure.

    In each TRANSFER statement, the system transfers all bytes (apart from spaces at the end) into the file, and places an end of line marker at the end. For information about the TRANSFER statement, refer to Writing Data to Files.

    In each READ DATASET statement, the system reads all of the data up to the next end of line marker. For information about the READ DATASET statement, refer to Reading Data from Files. If the target field is too small, the line is truncated. If it is longer than the line in the file, it is filled with trailing spaces.

    You should always use text mode if you want to write strings to files or where you know that an existing file has a line construction. You can, for example, use text mode to read files that you have created using any editor on your application server

    Opening a File for Write Access

    To open a file for writing, use the FOR OUTPUT addition to the OPEN DATASET statement.

    Syntax

    OPEN DATASET <dsn> FOR OUTPUT.

    If the file does not already exist, it is created automatically. If it does already exist, but is closed, its contents are overwritten. If the file exists and is already open (for read or write access, or for appending), the position is reset to the beginning of the file. If the system can open the file <dsn> successfully, SY-SUBRC is set to 0. If not, it is set to 8.

    DATA: MESS(60),

    FNAME(10) VALUE '/tmp'.

    OPEN DATASET FNAME FOR OUTPUT MESSAGE MESS.

    IF SY-SUBRC <> 0.

    WRITE: 'SY-SUBRC:', SY-SUBRC,

    / 'System Message:', MESS.

    ENDIF.

    regards,

    keerthi.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 04:58 PM

    Hi guys,

    Now i have an idea.I tried to locate the file in application server using al11,i could not locate the file.Is this the right tcode because it shows the error files .I downloaded by giving the file location in sxdb t code ,i could download the data to presentation server.

    I want to locate the file in application server could you guys tell me the t-code.

    can i see the data during debugging.

    open dataset io_file for input in text mode.

    open dataset io_file for output in text mode message msg.

    can i see the anything for this statements during debugging.

    when i click io_file i see the location of file

    msg i don't see any thing

    pls do let me know

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      yes, AL11 is the transaction code to view files on application server.

      but this system may have many no of folders.

      so while using OPEN DATASET you should give the full ( absolute path).

      what you are giving for OPEN DATASET, you should go to that folder in AL11, to see the file.

      you can NOT See the data just for OPEN DATASET.

      if you open the DATASET IN input MODE,

      then while USING READ DATASET <FILENAME> INTO <VARIABLE> .

      Here only you can see the read contents from the file.

      regards

      srikanth

  • author's profile photo Former Member
    Former Member
    Posted on Aug 03, 2006 at 07:58 PM

    hi guys,

    IAM READING DATA FROM

    DATA:

    input like RFPDO-RFBIFILE default

    '/user/dev/zxx/abc.abc.amb'.

    open dataset input for input in text mode.

    data: output like rfpdo-rfbifile value

    '/user/dev/zxxx/abc.abc.amb'.

    open dataset output for output in text mode message msg.

    if sy-subrc ne 0.

    message e999(00) with msg 'Cannnot open file' output.

    endif.

    I AM GETTING AN ERROR IN MSG AS

    "No such file or directory"

    LET ME KNOW IF I AM WRONG ANYWHERE

    Add comment
    10|10000 characters needed characters exceeded