Application Development and Automation 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: 
Read only

open data set problem

Former Member
0 Likes
992

Hi All,

What is the problem in following code? i am not able to open file

  • Data Declaration

DATA: L_FILENAME TYPE STRING value '/data/testdt.txt'.

DATA L_TEXT(50).

  • Opening the File

OPEN DATASET L_FILENAME FOR OUTPUT IN text mode

MESSAGE L_TEXT ENCODING DEFAULT.

  • Transferring Data

LOOP AT I_OUT INTO WA_OUT.

TRANSFER WA_OUT-KUNNR TO L_FILENAME.

ENDLOOP.

  • Closing the File

CLOSE DATASET L_FILENAME.

Thanks in Advance

12 REPLIES 12
Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
966

Hello,

Do you have authorisation to write to the folder?

Before OPEN DATASET check the auth. using the auth. object S_DATASET.

DATA: L_FILENAME TYPE STRING value '/data/testdt.txt',
L_REPID TYPE SY-REPID.

  L_REPID = SY-REPID.

DATA L_TEXT(50).

  AUTHORITY-CHECK OBJECT 'S_DATASET'
          ID 'PROGRAM' FIELD L_REPID
          ID 'ACTVT' FIELD '34' "-->Write Access
          ID 'FILENAME' FIELD L_FILENAME.                  "#EC *
  IF SY-SUBRC NE 0.
*    You have no authorization for file &
  ENDIF.

* Opening the File
OPEN DATASET L_FILENAME FOR OUTPUT IN text mode
MESSAGE L_TEXT ENCODING DEFAULT.

IF SY-SUBRC EQ 0. "-->Check SY-SUBRC = 0 after OPEN DATASET
* Transferring Data
LOOP AT I_OUT INTO WA_OUT.
TRANSFER WA_OUT-KUNNR TO L_FILENAME.
ENDLOOP.
* Closing the File
CLOSE DATASET L_FILENAME.
ELSE.
ENDIF.

Please check & revert.

BR,

Suhas

Read only

Former Member
0 Likes
966

I check sy-subrc after authority check it is 0

Read only

Former Member
0 Likes
966

Hi,

After the OPEN DATATSET statement, what is the value of L_TEXT?

Regards,

Nick

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
966

And what exactly do you mean by "i am not able to open file"?

After OPEN DATASET stmt, please check for SY-SUBRC & revert back.

BR,

Suhas

Read only

Former Member
0 Likes
966

After open data set sy-subrc value is 8

Read only

Former Member
0 Likes
966

I just wrote this (resembles your program)

* Data Declaration
DATA: L_FILENAME TYPE STRING value '/tmp/testdt.txt'.
data: l_text(100).
DATA: begin of wa_out,
      kunnr like kna1-kunnr,
     end of wa_out.

* Opening the File
OPEN DATASET L_FILENAME FOR OUTPUT IN text mode
MESSAGE L_TEXT ENCODING DEFAULT.

* Transferring Data
wa_out-kunnr = '123456'.
TRANSFER WA_OUT-KUNNR TO L_FILENAME.

* Closing the File
CLOSE DATASET L_FILENAME.

and it works.

How do you check whether the file is being created? Do you read it back in? Or look at AL11?

Edited by: jon davies on Sep 30, 2009 4:19 PM

Read only

Former Member
0 Likes
966

yed i checked in AL11

Read only

Former Member
0 Likes
966

If I beg will you then paste your code.

I'm on my knees here.

Read only

Former Member
0 Likes
966

Yest it should be yours

Read only

Former Member
0 Likes
966

Please ignore my previous post. Looks like am drunk today

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
966

That's why i dint p(o)int it out 😛

Read only

Former Member
0 Likes
966

Hi,

i do it like this:

DATA: DATEI_OUT(30) TYPE C VALUE '/data/testdt.txt'.

*

OPEN DATASET DATEI_OUT

FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

  • Try here to check the SY-SUBRC, perhaps you get an OPEN-Error

LOOP AT IT_BEDNR_X INTO WA_BEDNR_X.

TRANSFER WA_BEDNR_X TO DATEI_OUT.

ENDLOOP.

CLOSE DATASET DATEI_BEDNR.

and it workd OK

Regards, Dieter