on 04-11-2007 8:59 AM
I am looking for a bapi to load vendor master data from excel sheet.
please someone send me a sample code with load excel file from application server.
Hi,
Here is the code for BDC to create vendor from Application server.
report ZMMBDCP_VENDOR
no standard page heading
line-size 255.
----
*Includes
----
include bdcrecx1.
----
*Internal Tables
----
*--Internal Table to hold vendor details
Data: begin of it_vendor occurs 0,
f1(4), " Company code
f2(4), " Purch. organization
f3(4), " Acc group
f4(30), " Title
f5(40), " Name1
f6(40), " Name2
f7(20), " Search Term
f8(20), " Search Term
f9(60), " Street
f10(10), " Postal Code
f11(40), " City
f12(3), " Country
f13(10), " PO Box
f14(2), " Language
f15(30), " Telephone
f16(30), " Fax
f17(241), " Email
f18(10), " Recon. account
f19(1), " Chk double inv.
f20(5), " Currency
f21(2), " Schema
f22(30),
end of it_vendor.
----
*Start of selection
----
start-of-selection.
Clear it_vendor.
Refresh it_vendor.
WRITE : / 'Upload of Vendor from ', P_FNAME, ' on ', SY-DATUM.
*To Upload Flat file
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = 'C:\WINDOWS\Desktop\vendor1.txt'
filetype = 'DAT'
TABLES
data_tab = it_vendor
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
perform open_group.
OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.
*
if sy-subrc ne 0.
write : / 'File could not be uploaded.. Check file name.'.
stop.
endif.
*
CLEAR : it_vendor[], it_vendor.
*
DO.
READ DATASET P_FNAME INTO V_STR.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
write v_str.
translate v_str using '#/'.
SPLIT V_STR AT ',' INTO it_vendor-F1 it_vendor-F2 it_vendor-F3
it_vendor-F4 it_vendor-F5 it_vendor-F6
it_vendor-F7 it_vendor-F8 it_vendor-F9
it_vendor-F10 it_vendor-F11 it_vendor-F12
it_vendor-F13 it_vendor-F14 it_vendor-F15
it_vendor-F16 it_vendor-F17 it_vendor-F18
it_vendor-F19 it_vendor-F20 it_vendor-F21
it_vendor-F22.
*
APPEND it_vendor.
CLEAR it_vendor.
ENDDO.
*
IF it_vendor[] IS INITIAL.
WRITE : / 'No data found to upload'.
STOP.
ENDIF.
*Looping on vendor internal table
loop at it_vendor.
*Screen 110
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'USE_ZAV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-BUKRS'
it_vendor-f1. " '3000'.
perform bdc_field using 'RF02K-EKORG'
it_vendor-f2. "'3000'.
perform bdc_field using 'RF02K-KTOKK'
it_vendor-f3. "'kred'.
perform bdc_field using 'USE_ZAV'
'X'.
*Screen 111
perform bdc_dynpro using 'SAPMF02K' '0111'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
perform bdc_field using 'BDC_CURSOR'
'SZA1_D0100-SMTP_ADDR'.
perform bdc_field using 'SZA1_D0100-TITLE_MEDI'
it_vendor-f4. " 'Company'.
perform bdc_field using 'ADDR1_DATA-NAME1'
it_vendor-f5. "'name1'.
perform bdc_field using 'ADDR1_DATA-NAME2'
it_vendor-f6. "'name2'.
perform bdc_field using 'ADDR1_DATA-SORT1'
it_vendor-f7. "'s1'.
perform bdc_field using 'ADDR1_DATA-SORT2'
it_vendor-f8. "'s2'.
perform bdc_field using 'ADDR1_DATA-STREET'
it_vendor-f9.
perform bdc_field using 'ADDR1_DATA-POST_CODE1'
it_vendor-f10. "'55555'.
perform bdc_field using 'ADDR1_DATA-CITY1'
it_vendor-f11. "'city'.
perform bdc_field using 'ADDR1_DATA-COUNTRY'
it_vendor-f12. "'SA'.
perform bdc_field using 'ADDR1_DATA-PO_BOX'
it_vendor-f13 . "'12345'.
perform bdc_field using 'ADDR1_DATA-LANGU'
it_vendor-f14 . "'EN'.
perform bdc_field using 'SZA1_D0100-TEL_NUMBER'
it_vendor-f15. "'344455'.
perform bdc_field using 'SZA1_D0100-FAX_NUMBER'
it_vendor-f16. "'445555'.
perform bdc_field using 'SZA1_D0100-SMTP_ADDR'
it_vendor-f17. " 'anujkaul@hotmail.com'.
*Screen 120
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
*Screen 130
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
*Screen 210
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-AKONT'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
perform bdc_field using 'LFB1-AKONT'
it_vendor-f18. "'160000'.
*Screen 215
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-REPRF'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
perform bdc_field using 'LFB1-REPRF'
it_vendor-f19. "'X'.
*Screen 220
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
*Screen 310
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-KALSK'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
perform bdc_field using 'LFM1-WAERS'
it_vendor-f20. "'SAR'.
perform bdc_field using 'LFM1-KALSK'
it_vendor-f21. "'01'.
perform bdc_field using 'LFM1-VERKF'
it_vendor-f22.
*Screen 320
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'WYT3-PARVW(01)'.
perform bdc_field using 'BDC_OKCODE'
'=VW'.
*Screen 300
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*Call Transaction XK01
perform bdc_transaction using 'XK01'.
endloop.
perform close_group.
reward if useful
regards,
ANJI
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.