Sunteți pe pagina 1din 6

BATCH DATA COMMUNICATION

================================

BDC IS A METHOD FOR DATA TRANSFER FROM NON-SAP (LEGACY FILE)


TO SAP (R/3 SYSTEM)

3 METHODS ARE USED IN BDC


1.CALL TRANSACTION METHOD (SDHB)
2.SESSION METHOD (SM35)
3.DIRECT INPUT METHOD (SE38)

====================================
CALL TRANSACTION METHOD

RECORDING OF A T-CODE :

MK01: VENDOR MASTER CREATION


MM01: MATERIAL MASTER CREATION
XD01: CUSTOMER MASTER CREATION

go to t-code shdb
click on new recording button
recording hemrec

transaction code : mk01


click on start recording

vendor no : a555688890
purch org : 1000 (ides org)
accts group: cpdl (onetime vendor)

continue

name: hemanth
search term: hem

continue

continue (3rd screen)

ord currency : inr

continue

continue

save the recording


press back button

select hemrec and click on program button

program : zhemctm

select transfer from recording


continue

title: call transaction method


type: executable method
click on source code
save as local object

comment all lines of recording

===========================================

call transaction method

============================================

legacy file-----itab------BDCDATA-----R/3 SYSTEM


c:/abc.txt
<--------ISTEP----------------><-----IISTEP--->
=================================================
ROUGH WORK

a555688890 RF02K-LIFNR CHAR 16 LFA1-LIFNR (CHAR 10)


1000 RF02K-EKORG CHAR 4
CPDL RF02K-KTOKK CHAR 4
HEMANTH LFA1-NAME1 CHAR 35
HEM LFA1-SORTL CHAR 10
INR LFM1-WAERS CUKY 5

RF02K IS A STRUCTURE

TABLES:LFA1, LFM1.
====================================

CREATE THE LEGACY FILE IN C:/ABC.TXT

a5556888801000CPDLSATISH SAT INR


a5556888811000CPDLSATISH SAT INR
a5556888831000CPDLSATISH SAT I
===============================================

report ZHEMCTM
no standard page heading line-size 255.

TABLES: LFA1, LFM1.

DATA: BEGIN OF ITAB OCCURS 0,


LIFNR LIKE LFA1-LIFNR,
EKORG LIKE RF02K-EKORG,
KTOKK LIKE RF02K-KTOKK,
NAME1 LIKE LFA1-NAME1,
SORTL LIKE LFA1-SORTL,
WAERS LIKE LFM1-WAERS,
END OF ITAB.

DATA: BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.

*CLICK ON THE PATTERN BUTTON


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:/ABC.TXT'
FILETYPE = 'ASC'
* HAS_FIELD_SEPARATOR = ' '
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = ITAB[]
* 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.

LOOP AT ITAB.
WRITE:/ ITAB.
ENDLOOP.

========================================
STEP 2: CALL TRANSACTION METHOD

LOOP AT ITAB.
REFRESH BDCDATA. "CLEARING THE CONTENTS OF BDCDATA
PERFORM MAPDATA. "TO TRANSFER DATA FROM ITAB TO BDCDATA.
CALL TRANSACTION 'MK01' USING BDCDATA MODE 'A'.
*WRITE:/ ITAB.
ENDLOOP.

*A: ALL SCREEN MODE: TO DISPLAY ALL SCREENS WHILE TRANSFER


*N: NO SCREEN MODE: WILL DISPLAY ANY SCREEN TO USER WHILE TRANSFER
*E: ERROR SCREEN MODE: IN CASE OF ERRORS IT WILL STOP.

*DEFINE MAPDATA....
ALL THE RECORDING WILL BECOME FORM MAPDATA...ENDFORM
FORM MAPDATA.
perform bdc_dynpro using 'SAPMF02K' '0107'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
'a555688890'.
perform bdc_field using 'RF02K-EKORG'
'1000'.
perform bdc_field using 'RF02K-KTOKK'
'cpdl'.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-NAME1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
'hemanth'.
perform bdc_field using 'LFA1-SORTL'
'HEM'.
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' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
'inr'.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

ENDFORM.

UNCOMMENT ALL LINES AND REPLACE ORIGINAL VALUES WITH ITAB VALUES

FORM MAPDATA.
perform bdc_dynpro using 'SAPMF02K' '0107'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
ITAB-LIFNR.
perform bdc_field using 'RF02K-EKORG'
ITAB-EKORG.
perform bdc_field using 'RF02K-KTOKK'
ITAB-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-NAME1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
ITAB-NAME1.
perform bdc_field using 'LFA1-SORTL'
ITAB-SORTL.
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' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
ITAB-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.

ENDFORM.

DEFINE BDCDATA...
*include bdcrecx1.
D.CLICK ON IT
SAVE..YES
CLICK ON DISPLAY
GO TO END OF THE CODE
COPY THE CODE FOR START NEW SCREEN, INSERT FIELD
INTO ABAP PROGRAM

*STANDARD CODE FOR BDCDATA


*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
SAVE THE PROGRAM
CHECK AND ACTIVATE-TEST

==================================
IT WILL TRANSFER DATA FROM ITAB TO BDCDATA AND TO R/3 SYSTEM
USING CALL TRANSACTION METHOD WHILE DISPLAYING SCREENS TO USER

=====================================================
NEXT CLASS: SESSION METHOD (SM35) SUN 10 AM

=====================================================

S-ar putea să vă placă și