03-28-2008 4:09 PM
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.
03-28-2008 4:23 PM
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
03-28-2008 4:23 PM
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
03-28-2008 4:25 PM
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.