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 Dataset question

Ash_ok
Contributor
0 Likes
752

Hi !

I am using the

OPEN DATASET lv_filename FOR INPUT IN BINARY MODE

statement and it reads the contents of a .xml file correctly. However, if I later try and view the contents of the file using AL11, it is in binary mode. Any ideas of how to read the same file in AL11 in text format ?

Cheers,

Ashok.

6 REPLIES 6
Read only

Former Member
0 Likes
724

try this

OPEN DATASET 'FILENAME' FOR INPUT IN LEGACY TEXT MODE CODE PAGE.

Read only

0 Likes
724

Kishore,

It works similar to the vanilla

in text mode

, but it is not reading the root element due to the indented space before the xml tag.

Cheers,

Ashok.

Read only

0 Likes
724

SAMPLE REPORT

when u use open data set if ur runing ur report in background it will create proble.so use this FM

TABLES: zdms_textno.

DATA: BEGIN OF it_upload1 OCCURS 0,

kunnr LIKE vbak-kunnr,

pno LIKE vbrk-bstnk_vf,

idate(10), " like vbrk-fkdat,

pernr LIKE p0000-pernr,

END OF it_upload1.

DATA: BEGIN OF it_upload2 OCCURS 0,

pno LIKE vbrk-bstnk_vf,

matnr LIKE vbrp-matnr,

kwmeng LIKE rv45a-kwmeng,

END OF it_upload2.

DATA: BEGIN OF it_up1 OCCURS 0,

string1(66),

END OF it_up1.

DATA: BEGIN OF it_up2 OCCURS 0,

string2(70),

END OF it_up2.

DATA: it_zdms_textno LIKE zdms_textno OCCURS 0 WITH HEADER LINE.

DATA: it_order LIKE STANDARD TABLE OF zdms_log WITH HEADER LINE.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: gt_bdcmsg LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE,

file1 TYPE rlgrap-filename .

DATA: it_textno LIKE zdms_textno OCCURS 0,

wa_textno LIKE LINE OF it_textno .

DATA : gv_filenum LIKE zdms_textno-filenumber ,

gv_filenumc(10) TYPE c .

*DATA : gv_path TYPE rlgrap-filename.

DATA : gv_path(100) TYPE c.

DATA: gv_file1 TYPE string.

DATA: gv_char1(15) ,

gv_char2(16),

gv_char3(15),

gv_qty(15),

n TYPE i,

m(2),

gv_msg(50),

gv_kwmeng(15),

gv_kwmeng1(15),

gv_string1(66),

gv_string2(70),

numc1(10),

rec(70) ,

ln TYPE i,

gv_pernr(8),

gv_pernr1(8),

p TYPE i .

DATA : lw_string TYPE string.

DATA : wa_order LIKE LINE OF it_order.

DATA : mess TYPE string.

DATA : d_server TYPE string VALUE 'r3prod_EEP_05'.

START-OF-SELECTION.

ln = 2 .

WHILE ln GT 1 .

                • Start of Added by Durai.V 30-May-2008******

CLEAR it_upload1.

CLEAR it_upload1[].

CLEAR it_upload2.

CLEAR it_upload2[].

                • End of Added by Durai.V 30-May-2008********

PERFORM upload.

IF sy-subrc NE 0 .

EXIT.

ENDIF.

PERFORM bdc_execute.

ENDWHILE.

*****************

  • Form Upload

**************

FORM upload.

CLEAR: gv_filenum ,

gv_filenumc,

gv_file1 ,

gv_path,

wa_textno .

SELECT SINGLE filenumber path

FROM zdms_textno

INTO (gv_filenum,gv_path)

WHERE filename EQ 'INCOMING' .

MOVE gv_filenum TO gv_filenumc .

SHIFT gv_filenumc LEFT DELETING LEADING '0'.

*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Hdr_'

CONCATENATE gv_path 'EFC_Indent_Hdr_'

gv_filenumc

'.txt'

INTO gv_file1 .

                • Start of Added by Durai.V 30-May-2008******

CLEAR it_up1.

CLEAR it_up1[].

                • End of Added by Durai.V 30-May-2008********

CALL FUNCTION 'DX_FILE_READ' DESTINATION d_server

EXPORTING

filename = gv_file1

TABLES

data_tab = it_up1

EXCEPTIONS

no_file_on_server = 1

no_data_on_server = 2

gui_upload_failed = 3

  • no_authority = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

WRITE : gv_file1 , 'File not found'.

EXIT.

ENDIF.

                • Start of Added by Durai.V 30-May-2008******

WRITE : / 'Application Server File Path for Header: ',gv_file1.

                • End of Added by Durai.V 30-May-2008********

*************************************Commented By Anbu****************************************************

  • OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .

*

  • IF sy-subrc = 0.

  • DO.

  • READ DATASET gv_file1 INTO rec .

  • IF sy-subrc = 0.

  • MOVE rec TO it_up1-string1.

  • APPEND it_up1 .

  • ELSE.

  • EXIT.

  • ENDIF.

  • ENDDO .

  • ELSE .

  • WRITE : gv_file1 , mess, 'File not found'.

  • EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Header File Not Available' .

  • ENDIF.

CLOSE DATASET gv_file1 .

*************************************Ended By Anbu****************************************************

IF sy-subrc = 0.

wa_textno-filename = 'INCOMING' .

wa_textno-filenumber = gv_filenum + 1 .

wa_textno-path = gv_path.

  • shift zdms_textno left deleting leading ' ' .

MODIFY zdms_textno FROM wa_textno .

ENDIF.

LOOP AT it_up1.

gv_string1 = it_up1-string1.

IF gv_string1 EQ 'EOF' .

EXIT.

ELSE.

SPLIT gv_string1 AT '~' INTO: it_upload1-kunnr it_upload1-pno it_upload1-idate it_upload1-pernr .

CLEAR : gv_pernr ,gv_pernr1, p .

p = 0 .

MOVE it_upload1-pernr TO gv_pernr1 .

DO 8 TIMES.

IF ( gv_pernr1(1) EQ '0' OR gv_pernr1p(1) EQ '1' OR gv_pernr1p(1) EQ '2' OR gv_pernr1p(1) EQ '3' OR gv_pernr1p(1) EQ '4'

OR gv_pernr1p(1) EQ '5' OR gv_pernr1p(1) EQ '6' OR gv_pernr1p(1) EQ '7' OR gv_pernr1p(1) EQ '8'

OR gv_pernr1+p(1) EQ '9' ).

CONCATENATE gv_pernr1

gv_pernr1+p(1)

INTO gv_pernr1.

p = p + 1.

ELSE.

EXIT.

ENDIF.

ENDDO.

MOVE gv_pernr TO it_upload1-pernr .

APPEND it_upload1.

CLEAR gv_string1 .

ENDIF.

ENDLOOP.

CLEAR: gv_filenumc,

gv_file1 ,

wa_textno .

gv_filenum = gv_filenum + 1 .

MOVE gv_filenum TO gv_filenumc .

SHIFT gv_filenumc LEFT DELETING LEADING '0'.

  • if gv_filenum < 10 .

  • concatenate '0' gv_filenumc into gv_filenumc .

  • endif.

*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Trn_'

CONCATENATE gv_path 'EFC_Indent_Trn_'

gv_filenumc

'.txt'

INTO gv_file1 .

                • Start of Added by Durai.V 30-May-2008******

CLEAR it_up2.

CLEAR it_up2[].

                • End of Added by Durai.V 30-May-2008********

CALL FUNCTION 'DX_FILE_READ' DESTINATION d_server

EXPORTING

filename = gv_file1

  • SERVER =

  • pc =

TABLES

data_tab = it_up2

EXCEPTIONS

no_file_on_server = 1

no_data_on_server = 2

gui_upload_failed = 3

  • NO_AUTHORITY = 4

OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

WRITE : gv_file1 , 'File not found'.

EXIT.

ENDIF.

                • Start of Added by Durai.V 30-May-2008******

WRITE : / 'Application Server File Path for Item : ',gv_file1.

                • End of Added by Durai.V 30-May-2008********

*************************************Commented By Anbu****************************************************

  • OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .

  • IF sy-subrc = 0 .

  • DO.

  • READ DATASET gv_file1 INTO rec .

  • IF sy-subrc = 0.

  • MOVE rec TO it_up2-string2.

  • APPEND it_up2 .

  • ELSE.

  • EXIT.

  • ENDIF.

  • ENDDO.

  • ELSE.

  • WRITE : gv_file1 , mess , 'File not found'.

  • EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Transaction File Not Available' .

  • ENDIF.

CLOSE DATASET gv_file1.

*************************************Ended By Anbu****************************************************

IF sy-subrc = 0.

wa_textno-filename = 'INCOMING' .

wa_textno-filenumber = gv_filenum + 1 .

wa_textno-path = gv_path.

MODIFY zdms_textno FROM wa_textno .

ENDIF.

LOOP AT it_up2.

gv_string2 = it_up2-string2.

IF gv_string2 EQ 'EOF' .

EXIT.

ELSE.

SPLIT gv_string2 AT '~' INTO: it_upload2-pno it_upload2-matnr gv_kwmeng1 .

  • shift gv_kwmeng1 right deleting trailing '#' .

    • shift gv_kwmeng1 left deleting leading '' .

CLEAR : gv_kwmeng ,p .

p = 0 .

DO 15 TIMES.

IF ( gv_kwmeng1+p(1) EQ '0' OR gv_kwmeng1+p(1) EQ '1' OR gv_kwmeng1+p(1) EQ '2' OR gv_kwmeng1+p(1) EQ '3' OR gv_kwmeng1+p(1) EQ '4'

OR gv_kwmeng1+p(1) EQ '5' OR gv_kwmeng1+p(1) EQ '6' OR gv_kwmeng1+p(1) EQ '7' OR gv_kwmeng1+p(1) EQ '8'

OR gv_kwmeng1+p(1) EQ '9' ).

CONCATENATE gv_kwmeng

gv_kwmeng1+p(1)

INTO gv_kwmeng.

p = p + 1.

ELSE.

EXIT.

ENDIF.

ENDDO.

MOVE gv_kwmeng TO it_upload2-kwmeng.

  • if gv_kwmeng1 CA

  • '#~`!@$%^&*()-_+={}[].<>/?;"\|ABCDEFGHIJKLMNOPQRSTUVWXYZ'.

*

  • if sy-fdpos => 0.

*

  • else.

*

  • move gv_kwmeng1 to it_upload2-kwmeng.

*

  • endif.

*

  • endif.

  • enddo.

  • move gv_kwmeng to it_upload2-kwmeng.

APPEND it_upload2.

CLEAR gv_kwmeng .

CLEAR gv_string2.

ENDIF.

ENDLOOP.

ENDFORM. " f001-gui_upload

&----


*& Form f002_bdc_execute

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bdc_execute .

LOOP AT it_upload1.

CLEAR: n, m.

REFRESH: bdcdata,

gt_bdcmsg.

wa_order-kunnr = it_upload1-kunnr .

PERFORM bdc_dynpro USING 'SAPMV45A' '0101' .

PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-SPART' .

PERFORM bdc_field USING 'BDC_OKCODE' '/00' .

PERFORM bdc_field USING 'VBAK-AUART' 'ZLOR' .

PERFORM bdc_field USING 'VBAK-VKORG' '1000' .

PERFORM bdc_field USING 'VBAK-VTWEG' '25' .

PERFORM bdc_field USING 'VBAK-SPART' '14' .

***

PERFORM bdc_dynpro USING 'SAPMV45A' '4001' .

PERFORM bdc_field USING 'BDC_CURSOR' 'KUAGV-KUNNR' .

PERFORM bdc_field USING 'BDC_OKCODE' '/00' .

PERFORM bdc_field USING 'KUAGV-KUNNR' it_upload1-kunnr .

PERFORM bdc_field USING 'VBKD-BSTKD' it_upload1-pno .

PERFORM bdc_field USING 'VBKD-BSTDK' it_upload1-idate .

  • perform bdc_field using 'RV45A-KETDAT' sy-datum .

  • perform bdc_field using 'RV45A-KPRGBZ' 'D' .

  • perform bdc_field using 'VBKD-PRSDT' sy-datum .

***

PERFORM bdc_dynpro USING 'SAPMV45A' '4001' .

LOOP AT it_upload2 WHERE pno = it_upload1-pno .

n = n + 1 .

IF sy-batch = ' '.

IF n > 5.

n = 5.

ENDIF.

ELSE.

IF n > 2.

n = 2.

ENDIF.

ENDIF.

MOVE n TO m .

IF n < 10.

CONCATENATE '0' m INTO m.

ENDIF.

CONCATENATE 'RV45A-MABNR('

m

')'

INTO gv_char3 .

PERFORM bdc_field USING 'BDC_CURSOR' gv_char3 . "'RV45A-MABNR(01)' .

PERFORM bdc_field USING 'BDC_OKCODE' '/00' .

PERFORM bdc_field USING 'KUAGV-KUNNR' it_upload1-kunnr .

PERFORM bdc_field USING 'KUWEV-KUNNR' it_upload1-kunnr .

PERFORM bdc_field USING 'VBKD-BSTKD' it_upload1-pno .

PERFORM bdc_field USING 'VBKD-BSTDK' it_upload1-idate .

  • perform bdc_field using 'RV45A-KETDAT' sy-datum .

  • perform bdc_field using 'RV45A-KPRGBZ' 'D' .

  • perform bdc_field using 'VBKD-PRSDT' sy-datum .

CONCATENATE 'RV45A-MABNR('

m

')'

INTO gv_char1 .

CONCATENATE 'RV45A-KWMENG('

m

')'

INTO gv_char2 .

MOVE it_upload2-kwmeng TO gv_qty.

PERFORM bdc_field USING gv_char1 it_upload2-matnr .

PERFORM bdc_field USING gv_char2 gv_qty .

PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

                • Start of Added by Durai.V 30-May-2008******

WRITE : / gv_char2, ':',gv_qty.

CLEAR : gv_char1,gv_char2,gv_char3.

                • End of Added by Durai.V 30-May-2008********

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMV45A' '4001' .

PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-LIFSK' .

PERFORM bdc_field USING 'VBAK-LIFSK' 'Z3' .

*******************************************************************

PERFORM bdc_field USING 'BDC_OKCODE'

'=KBES'.

PERFORM bdc_dynpro USING 'SAPMV45A' '4002'.

PERFORM bdc_field USING 'BDC_CURSOR'

'VBKD-BSARK'.

PERFORM bdc_field USING 'VBKD-BSARK'

'ZDMS'.

*******************************************************************

PERFORM bdc_field USING 'BDC_OKCODE' '=SICH' .

PERFORM bdc_dynpro USING 'SAPLSPO2' '0101' .

PERFORM bdc_field USING 'BDC_OKCODE' '=OPT1' .

DATA : lv_mode TYPE char1.

lv_mode = 'N'.

CALL TRANSACTION 'VA01' USING bdcdata MODE lv_mode

MESSAGES INTO gt_bdcmsg.

  • if sy-subrc = 0.

LOOP AT gt_bdcmsg.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = gt_bdcmsg-msgid

lang = gt_bdcmsg-msgspra

no = gt_bdcmsg-msgnr

v1 = gt_bdcmsg-msgv1

v2 = gt_bdcmsg-msgv2

IMPORTING

msg = gv_msg

EXCEPTIONS

OTHERS = 0.

IF ( gt_bdcmsg-msgtyp = 'E' ).

wa_order-text = gv_msg .

wa_order-tran_date = sy-datum .

wa_order-flag = '' .

wa_order-runtime = sy-uzeit .

MODIFY zdms_log FROM wa_order .

ENDIF.

IF ( gt_bdcmsg-msgtyp = 'S' ) .

wa_order-text = gv_msg .

wa_order-tran_date = sy-datum .

wa_order-flag = 'Y' .

wa_order-runtime = sy-uzeit .

MODIFY zdms_log FROM wa_order .

ENDIF.

ENDLOOP.

  • endif.

*********************

ENDLOOP.

ENDFORM. " f002_bdc_execute

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDFORM. "BDC_FIELD

Regards

Anbu

Read only

0 Likes
724

Sorry Anbu,

DX_FILE_READ

doesn't work.

DX_FILE_READ

inherently used

OPEN DATASET filename FOR INPUT IN TEXT MODE ENCODING DEFAULT

.

Cheers,

Ashok.

Read only

Former Member
0 Likes
724

Hi ,

Try this..

{OPEN DATASET lv_filename FOR INPUT

IN TEXT MODE

ENCODING DEFAULT.}

Regards

Kiran Sure

Read only

0 Likes
724

Tried that earlier, Kiran, but it doesn't work.