I hope my experience will save some time for some programmers who never experienced this scenario before.
When sending a fixed length text file with spaces at the end of the file;
Trailing blanks are truncated when writing in text mode.
To create fixed length records, use binary mode to write each record and append your own line break(CRLF-Hex ODOA).
File-type 'BIN' gives you the option of defining the file_size while using the ws_download function to download the file.
For an 80 character fixed length file, The internal table should be defined with the 2 extra one character type x fields.
data: begin of intab occurs 10,
field1(01) type c,
bkacct(03) type c,
field3(02) type n, value '00',
acount(10) type c ,
field5(01) type c value ' ',
ttype(01) type c,
indicator(01),(
field8(01) type c,
chect(10) type n ,
trwbtr(10),
laufd(6) type c,
znme1(20),
filler(14) type c value ' '.
cr(1) type x value '0D',
lf(1) type x value '0A',
end of intab.
calling the function module with filetype bin with the specific file size.
form download_filetab.
* Check
Requires Free Membership to View
that data exists
describe table intab lines sy-tfill.
ws_size = sy-tfill * 82.
call function 'WS_DOWNLOAD'
exporting
bin_filesize = ws_size
filename = ws_file
filetype = 'BIN'
tables
data_tab = intab
exceptions
file_open_error = 1
file_write_error = 2
invalid_filesize = 3 invalid_table_width = 4 invalid_type = 5
others = 6.
Hope it helps!
This was first published in May 2002

Join the conversationComment
Share
Comments
Results
Contribute to the conversation