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

Read Tab delimited File from Application server

Former Member
0 Likes
1,778

Hi Experts,

I am facing problem while reading file from Application server.

File in Application server is stored as follows, The below file is a tab delimited file.

##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1

i have downloaded this file from Application server using Transaction CG3Y. the Downloaded file is a tab delimited file and i could not see "#' in the file,

The code is as Below.

c_split TYPE abap_char1 VALUE cl_abap_char_utilities=>horizontal_tab.

here i am using IGNORING CONVERSION ERRORS in order to avoid Conversion Error Short Dump.

OPEN DATASET wa_filename-file FOR INPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

IF sy-subrc = 0.

WRITE : /,'...Processing file - ', wa_filename-file.

DO.

  • Read the contents of file

READ DATASET wa_filename-file INTO wa_file-data.

IF sy-subrc = 0.

SPLIT wa_file-data AT c_split INTO wa_adrc_2-kunnr

wa_adrc_2-title

wa_adrc_2-name1

wa_adrc_2-name2

wa_adrc_2-name3

wa_adrc_2-name4

wa_adrc_2-name_co

wa_adrc_2-city1

wa_adrc_2-city2

wa_adrc_2-regiogroup

wa_adrc_2-post_code1

wa_adrc_2-post_code2

wa_adrc_2-po_box

wa_adrc_2-po_box_loc

wa_adrc_2-transpzone

wa_adrc_2-street

wa_adrc_2-house_num1

wa_adrc_2-house_num2

wa_adrc_2-str_suppl1

wa_adrc_2-str_suppl2

wa_adrc_2-country

wa_adrc_2-langu

wa_adrc_2-region

wa_adrc_2-sort1

wa_adrc_2-sort2

wa_adrc_2-deflt_comm

wa_adrc_2-tel_number

wa_adrc_2-tel_extens

wa_adrc_2-fax_number

wa_adrc_2-fax_extens

wa_adrc_2-taxjurcode.

WA_FILE-DATA is having below values

##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1

And this is split by tab delimited and moved to other variables as shown above.

Please guide me how to read the contents without "#' from the file.

I have tried all possible ways and unable to get solution.

Thanks,

Shrikanth

Hi Experts,

I am facing problem while reading file from Application server.

File in Application server is stored as follows, The below file is a tab delimited file.

##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1

i have downloaded this file from Application server using Transaction CG3Y. the Downloaded file is a tab delimited file and i could not see "#' in the file,

The code is as Below.

c_split TYPE abap_char1 VALUE cl_abap_char_utilities=>horizontal_tab.

here i am using IGNORING CONVERSION ERRORS in order to avoid Conversion Error Short Dump.

OPEN DATASET wa_filename-file FOR INPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

IF sy-subrc = 0.

WRITE : /,'...Processing file - ', wa_filename-file.

DO.

  • Read the contents of file

READ DATASET wa_filename-file INTO wa_file-data.

IF sy-subrc = 0.

SPLIT wa_file-data AT c_split INTO wa_adrc_2-kunnr

wa_adrc_2-title

wa_adrc_2-name1

wa_adrc_2-name2

wa_adrc_2-name3

wa_adrc_2-name4

wa_adrc_2-name_co

wa_adrc_2-city1

wa_adrc_2-city2

wa_adrc_2-regiogroup

wa_adrc_2-post_code1

wa_adrc_2-post_code2

wa_adrc_2-po_box

wa_adrc_2-po_box_loc

wa_adrc_2-transpzone

wa_adrc_2-street

wa_adrc_2-house_num1

wa_adrc_2-house_num2

wa_adrc_2-str_suppl1

wa_adrc_2-str_suppl2

wa_adrc_2-country

wa_adrc_2-langu

wa_adrc_2-region

wa_adrc_2-sort1

wa_adrc_2-sort2

wa_adrc_2-deflt_comm

wa_adrc_2-tel_number

wa_adrc_2-tel_extens

wa_adrc_2-fax_number

wa_adrc_2-fax_extens

wa_adrc_2-taxjurcode.

WA_FILE-DATA is having below values

##K#U#N#N#R###T#I#T#L#E###N#A#M#E#1###N#A#M#E#2###N#A#M#E#3###N#A#M#E#4###S#O#R#T#1###S#O#R#T#2###N#A#M#E#_#C#O###S#T#R#_#S#U#P#P#L#1###S#T#R#_#S#U#P#P#L#2###S#T#R#E#E#T###H#O#U#S#E#_#N#U#M#1

And this is split by tab delimited and moved to other variables as shown above.

Please guide me how to read the contents without "#' from the file.

I have tried all possible ways and unable to get solution.

Thanks,

Shrikanth

9 REPLIES 9
Read only

Former Member
0 Likes
1,336

Looking at the format of the file, guess the file was created as a binary file. You could give a try reading it in binary mode instead of text mode to check if you are able to read without the #

Vikranth

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
1,336

Looks like you need to read the file in BINARY MODE.

Read only

0 Likes
1,336

Hi Vikranth,

I tried reading file in BINARY MODE, Read was unsuccessful and SY-SUBRC = 4.

Thanks,

Shrikanth R

Read only

0 Likes
1,336

Hello Shrikanth,

Thats wierd. Atleast the read should have been successful if not with correct data. Can you give a try with LEGACY BINARY MODE? Also check what is the hexadecimal value of # and let us know to suggest the exact replacement

Vikranth

Read only

0 Likes
1,336

Hi Vikranth,

I have tried Read Statement with LEGACY BINARY MODE,

the read was successful and the issue still remains same...

The value of # = 0000.

Thanks,

Shrikanth r

Read only

Former Member
0 Likes
1,336

Hi Srikanth,

On which version your working if it is ecc 6 please try the below syntax

OPEN DATASET wa_filename-file FOR INPUT IN TEXT MODE ENCODING UTF-16

You will get this problem when there are some junk values in your tab delimted file which occupy more than

1 byte..

Try the above syntax and let me know if you need further information

Regards

Satish Boguda

Read only

0 Likes
1,336

Hi Satish,

I am using SAP ECC 6.0 but the UTF-16 is not supported.

I have tried ENCODING DEFAULT , UTF-8 and NON-UNICODE nothing is working fine.

Thanks,

Shrikanth R

Read only

0 Likes
1,336

Hi ,

In ECC 6 if all the unicode patches are applied then UTF 16 will defintly work..

More over i would suggest you to ist replace # with some other * or , and then try to see in debugging if any further # appears..

and no # appears then try to split now.

if even now the # appears after replace statement then try to find out what exactly is it... wheather it is a horizantal tab etc....

and then again try to replace it and then split..

Please follow the process untill all the # are replaced...

This should work for you..

Let me know if you further face any issue...

Regards

Satish Boguda

Read only

Former Member
0 Likes
1,336

What is the hex value of the '#'? If not '09' (horizontal tab), code for that and remove the '#'....maybe that will work.