09-04-2006 1:50 PM
i am new to bdc .can anybody explain the bdc with help of an example
09-04-2006 2:05 PM
BDC stands for Batch Data Communication and is the methodology to upload data in to SAP R/3. As SAP has an underlying RDBMS, directly uploading data into database tables will lead to inconsistency. Therefore, data is uploaded using Tcode for a transaction.
1. First record the screen and field sequence using the Tcode SHDB.
2. Transfer the recording into a Z program and edit this program to replace the hard-coded value s with the dynamic values from the program.
Your program is ready to upload the required data into R3.
Regards.
09-05-2006 7:24 AM
Hi,
BDC is method to transfer legacy data into R3 system.
Data transfer can be done in any one method below:
BDC
LSMW
Direct Input method
BAPI
Of these BDC is subdivided into 2 types,
Call Transaction and Session method (TCode: SM35)
Let me give the sample prg for Call Transaction method.
tables ZMATMASTER.
DATA : itab like TABLE OF ZMATMASTER WITH KEY DESCRIPTION with header line.
DATA : IT_BDC LIKE TABLE OF BDCDATA WITH HEADER LINE.
DATA : IT_MSG LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\Material.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = itab.
LOOP AT ITAB.
PERFORM BDC_HEADER USING 'ZFILE_DOWNLOAD' 9001.
PERFORM BDC_DATA USING 'BDC_OKCODE' 'SAVE'.
PERFORM BDC_DATA USING 'ZMATMASTER-MNO' ITAB-MNO.
PERFORM BDC_DATA USING 'ZMATMASTER-DESCRIPTION' ITAB-DESCRIPTION.
PERFORM BDC_DATA USING 'ZMATMASTER-PLANT' ITAB-PLANT.
PERFORM BDC_DATA USING 'ZMATMASTER-SLOC' ITAB-SLOC.
PERFORM BDC_DATA USING 'ZMATMASTER-ROL' ITAB-ROL.
PERFORM BDC_DATA USING 'ZMATMASTER-UOM' ITAB-UOM.
PERFORM BDC_DATA USING 'ZMATMASTER-PRICE' ITAB-PRICE.
PERFORM BDC_DATA USING 'ZMATMASTER-DDAYS' ITAB-DDAYS.
PERFORM BDC_DATA USING 'ZMATMASTER-FLOT' ITAB-FLOT.
ENDLOOP.
CALL TRANSACTION 'ZTRANSCODES'
USING IT_BDC
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_MSG.
FORM BDC_HEADER USING PROGRAMNAME SCREENNO.
IT_BDC-PROGRAM = PROGRAMNAME.
IT_BDC-DYNPRO = SCREENNO.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
ENDFORM.
FORM BDC_DATA USING FNAME FVALUE.
CLEAR IT_BDC.
IT_BDC-FNAM = FNAME.
IT_BDC-FVAL = FVALUE.
APPEND IT_BDC.
ENDFORM.
-
In session method, log file can be viewed.
Foll. is the example for session method.
REPORT ZBDC_BATCH1 .
TABLES: ZEMPREC.
DATA : BEGIN OF STR1,
EMPNO(3),
EMPNAME(15),
SALARY(9),
DOJ(10),
END OF STR1.
DATA: FNAME(100) TYPE C VALUE 'C:\EMPLOYEE.TXT.,
DATA : BDCITAB LIKE TABLE OF BDCDATA WITH HEADER LINE,
MSGITAB LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE.
OPEN DATASET: FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
perform open_group.
DO .
READ DATASET FNAME INTO STR1.
IF SY-SUBRC <> 0 .
EXIT.
ENDIF.
perform bdc_dynpro using 'ZBDC_BATCH' '9000'.
perform bdc_field using 'ZEMPREC-EMPNO'
STR1-EMPNO.
perform bdc_field using 'ZEMPREC-EMPNAME'
STR1-EMPNAME.
perform bdc_field using 'ZEMPREC-SALARY'
STR1-SALARY.
perform bdc_field using 'ZEMPREC-DOJ'
STR1-DOJ.
ENDDO.
CLOSE DATASET FNAME.
perform bdc_transaction using 'ZTCODE'.
perform close_group.
CLOSE DATASET FNAME1.
CALL TRANSACTION 'SM35'.
-
*
FORM open_group
-
*
-
*
FORM open_group .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'sample'
HOLDDATE = SY-DATUM
KEEP = 'X'
USER = SY-UNAME.
ENDFORM. "open_group
-
*
FORM bdc_transaction
-
*
-
*
--> TCODE
-
*
form bdc_transaction USING TCODE.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'ZTCODE'
TABLES
DYNPROTAB = BDCITAB.
ENDFORM. "bdc_transaction
-
*
FORM close_group
-
*
-
*
FORM close_group.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDFORM. "close_group
-
*
FORM BDC_DYNPRO
-
*
-
*
--> PROGRAM
--> SCREEN
-
*
FORM BDC_DYNPRO USING PROGRAM SCREEN.
CLEAR BDCITAB.
BDCITAB-PROGRAM = PROGRAM.
BDCITAB-DYNPRO = SCREEN.
BDCITAB-DYNBEGIN = 'X'.
APPEND BDCITAB.
ENDFORM. "BDC_DYNPRO
-
*
FORM BDC_FIELD
-
*
-
*
--> FNAM
--> FVAL
-
*
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCITAB.
BDCITAB-FNAM = FNAM.
BDCITAB-FVAL = FVAL.
APPEND BDCITAB.
ENDFORM. "BDC_FIELD
Hope now u get an idea abt BDC.
Regards,
Router
09-05-2006 7:37 AM
Hello,
Please gimme your email ID, will forward you a good document.
Regs,
Venkat Ramanan N
06-15-2007 9:02 AM
Hi Venkat,
My email id : <b>suresh_kutamvenkata@yahoo.co.in</b> Please send me the BDC documents plz..
thanks,
suresh