on 02-27-2008 1:29 PM
If am having 100 records in flat file using bdc i want to insert these records into VBAK table how it is?
hi,
pls refer to this code,
in this am inserting few records in flat file to different tables.
REPORT *********.
internal table to hold data
DATA: BEGIN OF t_file OCCURS 0,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs,
ktokk LIKE rf02k-ktokk,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
akont LIKE lfb1-akont,
zterm LIKE lfb1-zterm,
reprf LIKE lfb1-reprf,
END OF t_file.
internal of type bdcdata
DATA: BEGIN OF t_bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF t_bdcdata.
log file
DATA: BEGIN OF t_msgtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF t_msgtab.
uploading the file
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename =
'C:\Documents and Settings\DakshnaNagaratnam_S\Desktop\xk01.txt'
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = t_file
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
fill t_bdcdata
LOOP AT t_file.
REFRESH t_bdcdata.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
t_file-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
t_file-bukrs.
PERFORM bdc_field USING 'RF02K-KTOKK'
t_file-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-NAME1'
t_file-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
t_file-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
t_file-land1.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-AKONT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
t_file-akont.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-REPRF'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-ZTERM'
t_file-zterm.
PERFORM bdc_field USING 'LFB1-REPRF'
t_file-reprf.
PERFORM bdc_dynpro USING 'SAPMF02K' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-LIFNR'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_transaction USING 'XK01'.
ENDLOOP.
to display message
PERFORM display_msg.
&----
*& Form bdc_dynpro
&----
FORM bdc_dynpro USING program
dynpro.
t_bdcdata-program = program.
t_bdcdata-dynpro = dynpro.
t_bdcdata-dynbegin = 'X'.
APPEND t_bdcdata.
CLEAR t_bdcdata.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field
&----
FORM bdc_field USING fnam
fval.
t_bdcdata-fnam = fnam.
t_bdcdata-fval = fval.
APPEND t_bdcdata.
CLEAR t_bdcdata.
ENDFORM. " bdc_field
&----
*& Form bdc_transaction
&----
FORM bdc_transaction USING trans.
CALL TRANSACTION trans
USING t_bdcdata
MODE 'N'
MESSAGES INTO t_msgtab.
ENDFORM. " bdc_transaction
&----
*& Form display_msg
&----
FORM display_msg .
LOOP AT t_msgtab.
WRITE: / t_msgtab-msgtyp,
t_msgtab-msgv1.
ENDLOOP.
ENDFORM. " display_msg
regards,
dinesh.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.