sap batch data communication

38
Batch Data Communication

Upload: jugul-crasta

Post on 26-Jan-2017

373 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: SAP Batch data communication

Batch Data Communication

Page 2: SAP 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.

Page 3: SAP Batch data communication

• Sample record using SHDB.

Page 4: SAP Batch data communication

• Click on new recording .• Enter recoding name ex: zmaterial.• Transaction code . Ex : MM01.• Update mode .• And click on start recording.

Page 5: SAP Batch data communication
Page 6: SAP Batch data communication
Page 7: SAP Batch data communication

Call Transaction MethodTYPES : 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 transactionDATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

*include bdcrecx1.

PARAMETERS : FILE(120) TYPE C.

Page 8: SAP Batch data communication

• 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.

Page 9: SAP Batch data communication

• 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

Page 10: SAP Batch data communication

• 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

Page 11: SAP Batch data communication

• 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.

Page 12: SAP Batch data communication

• CALL TRANSACTION 'MM01' USING BDCDATA[] UPDATE 'S' MODE 'A' MESSAGES INTO MESSTAB.

PERFORM PRINT_MESSAGE.

ENDLOOP.endform. " BDC_DATA

Page 13: SAP Batch data communication

• 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

Page 14: SAP Batch data communication

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

Page 15: SAP Batch data communication

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

Page 16: SAP Batch data communication

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

Page 17: SAP Batch data communication

• 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 hereENDIF.

Page 18: SAP Batch data communication

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'.*

Page 19: SAP Batch data communication

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 hereENDIF.

ENDLOOP.

Page 20: SAP Batch data communication

• CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS NOT_OPEN = 1 QUEUE_ERROR = 2 OTHERS = 3 .IF sy-subrc <> 0.* Implement suitable error handling hereENDIF.

Page 21: SAP Batch data communication

• 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.

Page 22: SAP Batch data communication

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.

Page 23: SAP Batch data communication
Page 24: SAP Batch data communication

• 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.

Page 25: SAP Batch data communication
Page 26: SAP Batch data communication

• 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.

Page 27: SAP Batch data communication

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.

Page 28: SAP Batch data communication
Page 29: SAP Batch data communication

• Save and click on back button.

Page 30: SAP Batch data communication

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.

Page 31: SAP Batch data communication

Maintain Field Mapping and conversion Rules .1. To map the flat file fields with SAP fields.• Click on execute.• Click on change display.

Page 32: SAP Batch data communication

• Click on SAP structure filed.• Click on Source and map the fields SAP fields with Source

fields.

Page 33: SAP Batch data communication
Page 34: SAP Batch data communication
Page 35: SAP Batch data communication

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.

Page 36: SAP Batch data communication

• 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.

Page 37: SAP Batch data communication

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.

Page 38: SAP Batch data communication