sap batch data communication

Post on 26-Jan-2017

373 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

ENDLOOP.

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

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

top related