Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

error when read dataset - file not open

Former Member
0 Kudos

dear all,

I m having a text file in my 'C:\' , say - p_file = 'C:\test.txt' i m trying to open this file using

OPEN DATASET p_file FOR OUTPUT IN TEXT MODE encoding default.

and tried reading the file using

do

READ DATASET p_file into line.

endloop.

but im getting runtime error saying " file not open". how to read the file.

regs,

Raja

7 REPLIES 7

Former Member
0 Kudos

Hi Raja,

it seems you are reading file from Local system. Use GUI_UPLOAD to read text file from local system.

Reward Points if this helps,

Satish

former_member188829
Active Contributor
0 Kudos

Hi,

OPEN DATASET p_file FOR I<b>NPUT</b> IN TEXT MODE encoding default.

Former Member
0 Kudos

OPEN DATASET works only on app server files, for presentation server files, u have to use GUI_UPLOAD function module

former_member386202
Active Contributor
0 Kudos

Hi,

FOR OUTPUT means ur trying to write, but i think ur trying to write in existing file. If file is already exist then use FOR APPENDING, otherwise FOR OUTPUT

will create new file automatically for write.

EX.

form open_file.

if p_aserv eq 'X'.

open dataset p_path for output in text mode encoding default.

if sy-subrc ne 0.

  • WRITE 😕 'Download Failed'.

message e000(8i) with 'Error in File opening for download'.

endif.

endif.

endform. " open_file

Regards,

Prashant

Former Member
0 Kudos

first check whether u r having authorization or not to create file in application server because i faced the same problem

Former Member
0 Kudos

Hi Raja,

u cant use OPEN DATASET statemen to handel the in the presentation server.

while using the presentation server, u have to use UPLOAD FM and u should read into internal table and then u can start using the records from itab...

if u use OPEN DATASET statemen to handel the in the presentation server, then u will get sy-subrc = 8 ( Operating system could not open file ).

sample code...

TYPES: BEGIN OF INREC,

KUNNR LIKE KNA1-KUNNR,

REGIO LIKE KNA1-REGIO,

TELF1 LIKE KNA1-TELF1,

END OF INREC.

DATA: IN_ITAB TYPE INREC

OCCURS 10 WITH HEADER LINE.

CALL FUNCTION ‘UPLOAD’

EXPORTING

FILENAME = ‘c:\bc180_file2’

TABLES

DATA_TAB = IN_ITAB.

LOOP AT IN_ITAB.

WRITE: / IN_ITAB-KUNNR,

IN_ITAB-REGIO,

IN_ITAB-TELF1.

ENDLOOP.

Former Member
0 Kudos

Hi Raja,

i write a code for ur problem and i check whether it is executing or not.The code that i written is executed sucessfully.

I am sending two programs both output the data to dataset and also input the data to dataset.

First execute the first program and then run the second program.ok

If u are satisfy with the code PLZ give me the REWARD POINTS..

CODE FOR OUTPUT:

----


  • Internal Table

----


DATA: BEGIN OF itab OCCURS 0,

text(50),

END OF itab.

----


  • Append data to Internal Table

----


itab-text = 'DEMO BDC FIRST LINE'.

APPEND itab.

itab-text = 'DEMO BDC SECOND LINE'.

APPEND itab.

----


  • OPEN THE DATASET

----


OPEN DATASET 'ZBDCDEMO' FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

----


  • Transfer the data to APPSERVER

----


LOOP AT itab.

TRANSFER itab TO 'ZBDCDEMO'.

ENDLOOP.

----


  • Close the Dataset

----


CLOSE DATASET 'ZBDCDEMO'.

CODE FOR INPUT:

----


  • Internal Table

----


DATA: BEGIN OF itab OCCURS 0,

text(50),

END OF itab.

----


  • OPEN THE DATASET

----


OPEN DATASET 'ZBDCDEMO' FOR INPUT IN TEXT MODE ENCODING DEFAULT.

if sy-subrc = 0.

----


  • READ THE DATA FROM THE DATASET AND PLACE THEM IN ITAB

----


do.

read dataset 'ZBDCDEMO' into itab.

if sy-subrc = 0.

append itab.

else.

exit.

endif.

enddo.

endif.

----


  • Display the Data

----


loop at itab.

write: / itab-text.

endloop.

----


  • Display the Data

----


close dataset 'ZBDCDEMO'.