Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Batch Data

Communication
• BDC’s are interface are used to upload the data from legacy system
to SAP System.
• 2 Methods.
1. Call Transaction method.
2. Session method.

• Steps :
1. Get the flat file from the customer. Flat file might be excel or text
file.
2. Get a sample recording with the help of SHDB .
3. Create a program with the help of recording.
4. Create a structure according to flat file fields.
5. Upload the flat file data into internal table using GUI_UPLOAD.
6. Loop at internal table to work area to create to repeat the
operation.
• Sample record using SHDB.
• Click on new recording .
• Enter recoding name ex: zmaterial.
• Transaction code . Ex : MM01.
• Update mode .
• And click on start recording.
Call Transaction Method
TYPES : BEGIN OF T_MARA,
MATNR(18) TYPE C ,
MBRSH TYPE C,
MTART(4) TYPE C,
MAKTX(40) TYPE C,
MEINS(2) TYPE C,
END OF T_MARA.
DATA : IT_MARA TYPE TABLE OF T_MARA,
WA_MARA TYPE T_MARA.
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
* messages of call transaction
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*include bdcrecx1.
PARAMETERS : FILE(120) TYPE C.
• AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE.
PERFORM SEARCH_FILE.
start-of-selection.
PERFORM UPLOAD_DATA.
PERFORM BDC_DATA.

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 <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
* ENDIF.
ENDFORM.
• form SEARCH_FILE .

DATA : FILE_NAME TYPE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SY-REPID
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME =''
IMPORTING
FILE_NAME = FILE_NAME.
.

FILE = FILE_NAME.
endform. " SEARCH_FILE
• form UPLOAD_DATA .
DATA : FILENAME TYPE STRING.
FILENAME = FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* 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 = IT_MARA[]
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.
* Implement suitable error handling here
ENDIF.

endform. " UPLOAD_DATA


• form BDC_DATA .
* perform open_group.
LOOP AT IT_MARA INTO WA_MARA.
REFRESH BDCDATA[].
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
WA_MARA-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
WA_MARA-MBRSH.
perform bdc_field using 'RMMG1-MTART'
WA_MARA-MTART.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
WA_MARA-MAKTX.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
WA_MARA-MEINS.
perform bdc_field using 'MARA-MTPOS_MARA'
'NORM'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*perform bdc_transaction using 'MM01'.
*
*perform close_group.
• CALL TRANSACTION 'MM01' USING BDCDATA[] UPDATE 'S'
MODE 'A'
MESSAGES INTO MESSTAB.

PERFORM PRINT_MESSAGE.

ENDLOOP.
endform. " BDC_DATA
• form PRINT_MESSAGE .
DATA : MES(120) TYPE C.
LOOP AT MESSTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = MESSTAB-MSGID
LANG = SY-LANGU
NO = MESSTAB-MSGNR
V1 = MESSTAB-MSGV1
V2 = MESSTAB-MSGV2
V3 = MESSTAB-MSGV3
V4 = MESSTAB-MSGV4
IMPORTING
MSG = MES
EXCEPTIONS
NOT_FOUND =1
OTHERS =2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
WRITE : / MES.
ENDLOOP.
REFRESH MESSTAB.
endform. " PRINT_MESSAGE
Session Method

TYPES : BEGIN OF T_MARA,
MATNR(18) TYPE C,
MBRSH TYPE C,
MTART(4) TYPE C,
MAKTX(40) TYPE C,
MEINS(2) TYPE C,
END OF T_MARA.
DATA : IT_MARA TYPE TABLE OF T_MARA,
WA_MARA TYPE T_MARA.
PARAMETERS: FILE(120) TYPE C.

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE.


PERFORM SEARCH_FILE
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE.

PERFORM SEARCH_FILE.

form SEARCH_FILE .
DATA : FILE_NAME TYPE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
PROGRAM_NAME = SY-REPID
DYNPRO_NUMBER = '1000'
* FIELD_NAME =''
IMPORTING
FILE_NAME = FILE_NAME
.

FILE = FILE_NAME.
endform. " SEARCH_FILE
start-of-selection.
PERFORM UPLOAD_DATA.
form UPLOAD_DATA .
DATA : FILENAME TYPE STRING.
FILENAME = FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* 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 = IT_MARA[]
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.
* Implement suitable error handling here
ENDIF.

endform. " UPLOAD_DATA


• CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'MAT'
* HOLDDATE = SY-datum
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* PROG = SY-CPROG
* DCPFM = '%'
* DATFM = '%'
* IMPORTING
* QID =
EXCEPTIONS
CLIENT_INVALID =1
DESTINATION_INVALID =2
GROUP_INVALID =3
GROUP_IS_LOCKED =4
HOLDDATE_INVALID =5
INTERNAL_ERROR =6
QUEUE_ERROR =7
RUNNING =8
SYSTEM_LOCK_ERROR =9
USER_INVALID = 10
OTHERS = 11
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT IT_MARA INTO WA_MARA.
CLEAR BDCDATA[].
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
WA_MARA-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
WA_MARA-MBRSH.
perform bdc_field using 'RMMG1-MTART'
WA_MARA-MTART.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
WA_MARA-MAKTX.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
WA_MARA-MEINS.
perform bdc_field using 'MARA-MTPOS_MARA'
'NORM'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*perform bdc_transaction using 'MM01'.
*
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MM01'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH =''
* CTUPARAMS =''
TABLES
dynprotab = BDCDATA[]
EXCEPTIONS
INTERNAL_ERROR =1
NOT_OPEN =2
QUEUE_ERROR =3
TCODE_INVALID =4
PRINTING_INVALID =5
POSTING_INVALID =6
OTHERS =7
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDLOOP.
• CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN =1
QUEUE_ERROR =2
OTHERS =3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
• 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 <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
* ENDIF.
ENDFORM.
• ------------------------------------------------------------------------------
• Go to Transaction ‘SM35’ and click on process.
LSMW
• Legacy System migration workbench.
• Use to upload the data from legacy system to SAP system.
• Steps :
1. Transaction code ‘LSMW’.
2. Enter Project name , Subproject name and object name.
3. Click on create.
4. Enter the description for project , Subproject and object .
5. Click on Execute.
• Maintain Object Attributes :
1. Get the recording .

2. Go to -> recording overview -> create.

3. Enter recording name and short description.

4. Enter the Transaction code ex : ‘XD01’.

5. Create the recording.


• Click on default all , value entered fields in XDO1 transaction
are automatically appears.
• Save and click on back.
• Click on Batch Input Recording.
1. Check f4 help for recording. Recording name automatically
pull’s up.
• Click on back button.
• Save and click on back button.
Maintain source structure .
1. Create a structure according to flat file.
• Click on execute.
• Click on change and create.
• Enter structure name and short description.
• Click on Save.

Maintain Source fields .


1. To define the fields in the structure.
 Click on execute.
 Click on Edit and change.
 Click on structure name and click table maintenance.
 Enter the field name , type , length and description.
• Save and click on back button.
Maintain Structure Relation.
• Click on execute .
• Click on display change and save.
• Suppose If a project having different flat files, then structure
of different flat files we need to define here.
Maintain Field Mapping and conversion Rules .
1. To map the flat file fields with SAP fields.
• Click on execute.
• Click on change display.
• Click on SAP structure filed.
• Click on Source and map the fields SAP fields with Source
fields.
Fixed Values, Translations, User Defined Routines :
 We Can define some fixed values and translation rules in this
step.
Specify Files : To mention flat file location.
• Enter flat file location and give name.
• Delimiter : Select as per flat file.
• And check field names at start of file.
• Save and click on back button.
Assign Files :
 Execute .
 Change and save.

Read Data :
 Execute.
 Actual data uploaded from flat file into SAP LSMW.
Display Read Data .
 Display’s read data from flat file.
Convert Data :
1. Converts flat file data into SAP screen related data.
 Execute.

Display Converted Data :


 Its shows which transaction we are using .

Create Batch Input Session :


 Execute.
 Check Keep batch input folders?
 Execute.
Run Batch Input Session.
 Execute.
 SM35 transaction screen will appear .
 Select object name and click on process.

You might also like