on 08-02-2006 2:03 PM
how to upload data using bdc ( recording)
plz send model code for session method.
plz send by using recording how to get program
You can do the recording with transaction SHDB. There is a program button which will generate the code for you. You can then copy and paste this code in your program. Here is a model upload program.
This program excepts a comma delimited file with material number, plant, and std price. It then processes each record using a BDC over transaction MR21.
report zrich_0002
no standard page heading
line-size 132.
data: iflat type table of string with header line.
data: begin of itab occurs 0,
matnr type marc-matnr,
werks type marc-werks,
stdpr(10) type c,
end of itab.
data: pdate(10) type c.
data: bdcdata like bdcdata occurs 20 with header line,
mode(1) type c value 'N'.
selection-screen skip 1.
parameters: p_file type localfile default
'C:Std_Price.txt'.
parameters: p_date like sy-datum.
selection-screen skip 1.
at selection-screen on value-request for p_file.
call function 'KD_GET_FILENAME_ON_F4'
exporting
static = 'X'
changing
file_name = p_file.
start-of-selection.
perform upload_data.
perform process_records.
************************************************************************
* Upload_Data
************************************************************************
form upload_data.
clear iflat. refresh iflat.
clear itab. refresh itab.
call function 'GUI_UPLOAD'
exporting
filename = p_file
tables
data_tab = iflat.
loop at iflat.
split iflat at ',' into itab-matnr itab-werks itab-stdpr.
call function 'CONVERSION_EXIT_MATN1_INPUT'
exporting
input = itab-matnr
importing
output = itab-matnr.
append itab.
endloop.
endform.
************************************************************************
* Process_Records
************************************************************************
form process_records.
concatenate p_date+4(2) '/' p_date+6(2) '/' p_date(4)
into pdate.
loop at itab.
perform bdc_dynpro using 'SAPRCKM_MR21' '0201'.
perform bdc_field using 'BDC_CURSOR'
'MR21HEAD-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MR21HEAD-BUDAT'
pdate.
perform bdc_field using 'MR21HEAD-BUKRS'
'0010'.
perform bdc_field using 'MR21HEAD-WERKS'
itab-werks.
perform bdc_field using 'MR21HEAD-SCREEN_VARIANT'
'MR21_LAGERMATERIAL_0250'.
perform bdc_dynpro using 'SAPRCKM_MR21' '0201'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'BDC_CURSOR'
'CKI_MR21_0250-NEWVALPR(01)'.
perform bdc_field using 'MR21HEAD-SCREEN_VARIANT'
'MR21_LAGERMATERIAL_BWKEY_0250'.
perform bdc_field using 'CKI_MR21_0250-MATNR(01)'
itab-matnr.
perform bdc_field using 'CKI_MR21_0250-NEWVALPR(01)'
itab-stdpr.
perform bdc_dynpro using 'SAPRCKM_MR21' '0201'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'BDC_CURSOR'
'CKI_MR21_0250-MATNR(02)'.
perform bdc_field using 'MR21HEAD-SCREEN_VARIANT'
'MR21_LAGERMATERIAL_BWKEY_0250'.
call transaction 'MR21' using bdcdata mode mode
update 'S'.
if sy-subrc = 0.
write:/ 'S', itab-matnr, itab-werks,
'updated successfully'.
else.
write:/ 'E', itab-matnr, itab-werks,
'error trying to update'.
endif.
clear bdcdata. refresh bdcdata.
endloop.
endform.
************************************************************************
* Form BDC_DYNPRO
************************************************************************
form bdc_dynpro using program dynpro.
clear bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
append bdcdata.
endform.
************************************************************************
* Form BDC_FIELD
************************************************************************
form bdc_field using fnam fval.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endform.
Regards,
Rich Heilman
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
You can create a BDC recording using transaction-<b>SHDB</b>.
you can record all the events triggered for the transaction given.
As the BDC program needs all the fields names and events triggered, you can copy the recorded code into your Program.
Kindly check,
<b> the procedure for recording in the following link</b>
http://help.sap.com/saphelp_47x200/helpdata/en/b9/ec71180bfe11d2bd0b080009b4534c/frameset.htm
<b>Download Step by Step: How to Create BDC Program</b>
http://www.sap-img.com/sap-download/bdcrecording.zip
<b>Some useful Links</b>
http://www.sap-img.com/bdc.htm
http://www.sappoint.com/abap/bdcrec.pdf
<b>Sample code</b>
A sample program to upload data for transaction - MC76
REPORT ZBDC_MC76
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE BDCRECX1.
*** Generated data section with specific formatting ***
DATA: BEGIN OF IT_RECORD OCCURS 0,
* data element: PRGRP
PRGRP_001(018), " Product Group
* data element: WERKS_D
WERKS_002(004), " Plant
* data element: AWAHL
* AWAHL_02_003(001), " Indicator for Selection
* data element: FLGPR
* FLGPR_004(001),
* data element: FLGAB
* FLGAB_005(001), " Disaggregate Sales Plan
* data element: FLGLB
* FLGLB_006(001),
* data element:
FLD001_02_007(010), " Quantity
* data element: AWAHL
* AWAHL_04_008(001), " Indicator for Selection
END OF IT_RECORD.
*** End generated data section ***
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS :
P_PATH LIKE IBIPPARMS-PATH. "File path and name
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
CTU = 'X'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
FIELD_NAME = 'PATH'
IMPORTING
FILE_NAME = P_PATH.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_PATH
FILETYPE = 'DAT'
TABLES
DATA_TAB = IT_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
NO_AUTHORITY = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*START-OF-SELECTION.
* PERFORM OPEN_DATASET USING DATASET.
PERFORM OPEN_GROUP.
* DO.
* READ DATASET DATASET INTO IT_RECORD.
* IF SY-SUBRC <> 0. EXIT. ENDIF.
LOOP AT IT_RECORD.
PERFORM BDC_DYNPRO USING 'SAPMMCP6' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMCP2-WERKS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=IAKT'.
PERFORM BDC_FIELD USING 'RMCP2-PRGRP'
IT_RECORD-PRGRP_001.
PERFORM BDC_FIELD USING 'RMCP2-WERKS'
IT_RECORD-WERKS_002.
PERFORM BDC_DYNPRO USING 'SAPLMCP6' '0175'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMCP2-AWAHL(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=CONT'.
PERFORM BDC_FIELD USING 'RMCP2-AWAHL(02)' 'X'.
* IT_RECORD-AWAHL_02_003.
PERFORM BDC_DYNPRO USING 'SAPMMCP6' '0620'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMCP2-FLGAB'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=CONT'.
* PERFORM BDC_FIELD USING 'RMCP2-FLGPR'
* IT_RECORD-FLGPR_004.
PERFORM BDC_FIELD USING 'RMCP2-FLGAB' 'X'.
* IT_RECORD-FLGAB_005.
* PERFORM BDC_FIELD USING 'RMCP2-FLGLB'
* IT_RECORD-FLGLB_006.
PERFORM BDC_DYNPRO USING 'SAPLMCPA' '0807'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'*RMCP4-FLD001(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING '*RMCP4-FLD001(02)'
IT_RECORD-FLD001_02_007.
PERFORM BDC_DYNPRO USING 'SAPLMCPA' '0807'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'*RMCP4-FLD001(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=MAKR'.
PERFORM BDC_DYNPRO USING 'SAPMMCP6' '0140'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMCP2-AWAHL(04)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=CONT'.
PERFORM BDC_FIELD USING 'RMCP2-AWAHL(04)' 'X'.
* IT_RECORD-AWAHL_04_008.
PERFORM BDC_DYNPRO USING 'SAPLMCPA' '0807'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'*RMCP4-FLD001(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SICH'.
PERFORM BDC_TRANSACTION USING 'MC76'.
REFRESH BDCDATA.
ENDLOOP.
*ENDDO.
PERFORM CLOSE_GROUP.
*PERFORM CLOSE_DATASET USING DATASET.
Kindly reward points for useful answers!
Best regards,
Thangesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
98 | |
12 | |
10 | |
6 | |
6 | |
4 | |
3 | |
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.