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

DBF file creation

Former Member
0 Likes
520

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.

1 REPLY 1
Read only

Former Member
0 Likes
382

Field names written in small letters in text-symbols.

Closing this thread.