Application Development 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: 

flat file -bdc

kiran_k8
Active Contributor
0 Kudos

Hi,

I have to prepare a flat file for an bdc which is already existing in Production.I had just prepared one based on the internal table fields in the program,bt it is not working.Do anyone have an idea on how to prepare based on an existing program?

K.Kiran.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Kiran,

You can create flat file by the structure of internal table

or

You can see the recording which is already done.

For example in the following example flat file can be prepared by seeing the recording as well

report zbdctest .

tables: bdcdata.

data: tbdcdata like bdcdata occurs 0 with header line.

data: begin of record occurs 0,

acctg(4) type c,

name(20) type c,

search(10) type c,

street(20) type c,

postalcd(4) type c,

postcd(4) type c,

postdesc(20) type c,

country(2) type c,

taxcd(10) type c,

end of record.

data: begin of tb_text occurs 0,

description(40) type c,

count type i,

line(50) type c,

end of tb_text.

parameters: dataset(132) lower case default

'c:\test01.txt'.

at selection-screen on value-request for dataset.

data: xfile like ibipparms-path.

xfile = dataset.

call function 'F4_FILENAME'

exporting

program_name = sy-repid

dynpro_number = sy-dynnr

field_name = 'dataset'

importing

file_name = xfile.

dataset = xfile.

start-of-selection.

data: pfile like rlgrap-filename.

pfile = dataset.

call function 'WS_UPLOAD'

exporting

filename = pfile

filetype = 'DAT'

tables

data_tab = record

exceptions

conversion_error = 1

file_open_error = 2

file_read_error = 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 <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

call function 'BDC_OPEN_GROUP'

exporting client = sy-mandt

group = 'Test'

user = sy-uname.

loop at record.

refresh tbdcdata.

perform new_dynpro using 'SAPMF02K' '0107'.

perform new_field using 'RF02K-KTOKK' record-acctg.

perform new_field using 'BDC_OKCODE' '/00'.

perform new_dynpro using 'SAPMF02K' '0110'.

perform new_field using 'LFA1-NAME1' record-name.

perform new_field using 'LFA1-SORTL' record-search.

perform new_field using 'LFA1-STRAS' record-street.

perform new_field using 'LFA1-ORT01' record-postdesc.

perform new_field using 'LFA1-PSTLZ' record-postalcd.

perform new_field using 'LFA1-PFACH' record-postcd.

perform new_field using 'LFA1-LAND1' record-country.

perform new_field using 'LFA1-SPRAS' sy-langu.

perform new_field using 'BDC_OKCODE' '/00'.

perform new_dynpro using 'SAPMF02K' '0120'.

perform new_field using 'LFA1-STCD1' record-taxcd.

perform new_field using 'BDC_OKCODE' '=UPDA'.

perform bdc_transaction2 using 'MK01'.

  • call transaction 'MK01'

  • using Tbdcdata

  • mode 'A'

  • update 'A'.

loop at tb_text.

write / tb_text-line .

endloop.

endloop.

call function 'BDC_CLOSE_GROUP'.

Kiran,Award points if useful

Edited by: ravee indra on Mar 28, 2008 5:24 PM

2 REPLIES 2

Former Member
0 Kudos

Hi Kiran,

You can create flat file by the structure of internal table

or

You can see the recording which is already done.

For example in the following example flat file can be prepared by seeing the recording as well

report zbdctest .

tables: bdcdata.

data: tbdcdata like bdcdata occurs 0 with header line.

data: begin of record occurs 0,

acctg(4) type c,

name(20) type c,

search(10) type c,

street(20) type c,

postalcd(4) type c,

postcd(4) type c,

postdesc(20) type c,

country(2) type c,

taxcd(10) type c,

end of record.

data: begin of tb_text occurs 0,

description(40) type c,

count type i,

line(50) type c,

end of tb_text.

parameters: dataset(132) lower case default

'c:\test01.txt'.

at selection-screen on value-request for dataset.

data: xfile like ibipparms-path.

xfile = dataset.

call function 'F4_FILENAME'

exporting

program_name = sy-repid

dynpro_number = sy-dynnr

field_name = 'dataset'

importing

file_name = xfile.

dataset = xfile.

start-of-selection.

data: pfile like rlgrap-filename.

pfile = dataset.

call function 'WS_UPLOAD'

exporting

filename = pfile

filetype = 'DAT'

tables

data_tab = record

exceptions

conversion_error = 1

file_open_error = 2

file_read_error = 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 <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

call function 'BDC_OPEN_GROUP'

exporting client = sy-mandt

group = 'Test'

user = sy-uname.

loop at record.

refresh tbdcdata.

perform new_dynpro using 'SAPMF02K' '0107'.

perform new_field using 'RF02K-KTOKK' record-acctg.

perform new_field using 'BDC_OKCODE' '/00'.

perform new_dynpro using 'SAPMF02K' '0110'.

perform new_field using 'LFA1-NAME1' record-name.

perform new_field using 'LFA1-SORTL' record-search.

perform new_field using 'LFA1-STRAS' record-street.

perform new_field using 'LFA1-ORT01' record-postdesc.

perform new_field using 'LFA1-PSTLZ' record-postalcd.

perform new_field using 'LFA1-PFACH' record-postcd.

perform new_field using 'LFA1-LAND1' record-country.

perform new_field using 'LFA1-SPRAS' sy-langu.

perform new_field using 'BDC_OKCODE' '/00'.

perform new_dynpro using 'SAPMF02K' '0120'.

perform new_field using 'LFA1-STCD1' record-taxcd.

perform new_field using 'BDC_OKCODE' '=UPDA'.

perform bdc_transaction2 using 'MK01'.

  • call transaction 'MK01'

  • using Tbdcdata

  • mode 'A'

  • update 'A'.

loop at tb_text.

write / tb_text-line .

endloop.

endloop.

call function 'BDC_CLOSE_GROUP'.

Kiran,Award points if useful

Edited by: ravee indra on Mar 28, 2008 5:24 PM

Former Member
0 Kudos

Hi Kiran,

i think the information provided by you is not sufficient. Is the program showing any errors ?

If so then only we can get an idea. if not please give the description in brief.

Is the program working in background or foreground ?

thanks and regards.