Hi,
I am creating a DBF file using WS_DOWNLOAD and this file is being called by a non SAP program. The file is created but i can't seem to find its field. Code attached, any ideas are welcome. Thanks in advance.
Create file
LOOP AT it_final INTO wa_final WHERE docnum EQ wa_temp-docnum
AND amount NE 0.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = wa_final-prodcode
IMPORTING
output = wa_final-prodcode.
IF NOT w_flag IS INITIAL AND
wa_final-prodcode EQ w_prevmatnr AND
wa_final-docnum EQ w_prevvbeln.
READ TABLE it_dbf INTO wa_dbf
WITH KEY docnum = wa_final-docnum
prodcode = wa_final-prodcode BINARY SEARCH.
wa_dbf-qty = wa_dbf-qty + wa_final-qty.
wa_dbf-amount = wa_dbf-amount + wa_final-amount.
MODIFY it_dbf FROM wa_dbf INDEX sy-tabix.
ELSE.
IF wa_final-distcode = '213'.
wa_dbf-distcode = '212'.
ELSE.
wa_dbf-distcode = wa_final-distcode.
ENDIF.
wa_dbf-docnum = wa_final-docnum.
wa_dbf-docdate = wa_final-docdate.
wa_dbf-prodcode = wa_final-prodcode.
wa_dbf-trandate = wa_final-trandate.
wa_dbf-trantime = wa_final-trantime.
wa_dbf-qty = wa_final-qty.
wa_dbf-price = wa_final-price.
wa_dbf-amount = wa_final-amount.
wa_dbf-proddesc = wa_final-proddesc.
wa_dbf-grpcode = wa_final-grpcode.
wa_dbf-brndcode = wa_final-brndcode.
wa_dbf-sku2lku = wa_final-sku2lku.
wa_dbf-lkuprice = wa_final-lkuprice.
wa_dbf-srpprice = wa_final-srpprice.
wa_dbf-status = wa_final-status.
wa_dbf-password = wa_final-password.
APPEND wa_dbf TO it_dbf.
ENDIF.
w_flag = c_mark.
w_prevmatnr = wa_final-prodcode.
w_prevvbeln = wa_final-docnum.
CLEAR: wa_final, wa_dbf.
ENDLOOP.
IF NOT it_dbf IS INITIAL.
PERFORM f_populate_header.
retrieve filename
CLEAR: w_distcode, w_vkorg, w_mtart, w_num.
SELECT SINGLE distcode
vkorg
mtart
MAX( range )
INTO (w_distcode, w_vkorg, w_mtart, w_num)
FROM zsdsdis
WHERE distcode = wa_temp-distcode
GROUP by distcode vkorg mtart.
IF sy-subrc EQ 0.
ADD 1 TO w_num.
ELSE.
Please maintain distributor list for
MESSAGE i000 WITH text-004 wa_temp-distcode.
STOP.
ENDIF.
CLEAR w_fname.
CONCATENATE c_path c_f wa_temp-distcode w_num c_dot c_ftype
INTO w_fname.
generate dbf file
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = w_fname
filetype = c_ftype
TABLES
data_tab = it_dbf
fieldnames = it_fname
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc EQ 0.
update zautorec flag
CLEAR: wa_final.
LOOP AT it_final INTO wa_final WHERE docnum EQ wa_temp-docnum.
UPDATE zautorec SET flag = c_mark
WHERE distcode = wa_final-distcode
AND docnum = wa_final-docnum
AND posnr = wa_final-posnr
AND docdate = wa_final-docdate
AND prodcode = wa_final-prodcode.
COMMIT WORK AND WAIT.
ENDLOOP.
increment numeric range for filename
UPDATE zsdsdis SET range = w_num
WHERE distcode = wa_temp-distcode
AND vkorg = w_vkorg
AND mtart = w_mtart.
COMMIT WORK AND WAIT.
count number of created file
ADD 1 TO w_lines.
CLEAR wa_dbf.
REFRESH it_dbf.
ELSE.
display error
CLEAR w_error.
SELECT SINGLE text
INTO w_error
FROM t100
WHERE sprsl EQ sy-langu
AND arbgb EQ sy-msgid
AND msgnr EQ sy-msgno.
MESSAGE s000 WITH w_error w_fname.
STOP.
ENDIF. "file creation ok
ENDIF. "it_dbf not initial
ENDLOOP.
MESSAGE s000 WITH w_lines text-003. " n DBF file created.