Data Migration Techniques:BDC using CALL Transaction Method
BDC (Batch Data Communication): It works on the principle of Screen Recording
- It is one of the data migration technique to transfer the data from legacy system(Non SAP System) to SAP system.
- Transaction code to work with BDC is 'SHDB'.
There are 3 methods for BDC
- Call Transaction Method
- Session Method
- Direct Input Method
Call Transaction Method:
Syntax: CALL TRANSACTION T-code name using (Internal Table) MODE (A/N/E) UPDATE (A/S/L) name MESSAGE INTO (Internal Table)
- Goto T-code 'SHDB'.
- Click on 'new recording'.
- Enter Recording name and T-code you want recording (Eg:MM01).
- Click on 'Start Recording'.
- MM01 screen will appear
- Enter the required data
- Click on 'Select Views'
- Select 'Basic Data1' and continue.
- Enter data and click on 'Save'.
- Click on 'Save' and 'Back'.
- Select the Recording and click on 'Program'
- Enter Program Name and select radio button 'Transfer from recording'
- Click on 'Continue'
- System will generate the program. Go to se38 and edit the program like below.
report ZVB_TEST_MAT
no standard page heading line-size 255.
TYPES:BEGIN OF TY_DATA,
MATNR TYPE MARA-MATNR,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
END OF TY_DATA.
DATA:LS_DATA TYPE TY_DATA,
LT_DATA TYPE TABLE OF TY_DATA.
DATA:LV_FILE TYPE STRING,
LV_MSG TYPE STRING.
*Copied from Include bdcrecx1_s
DATA:LS_BDCDATA TYPE BDCDATA,
LT_BDCDATA TYPE TABLE OF BDCDATA,
LT_MSGTAB TYPE TABLE OF BDCMSGCOLL,
LS_MSGTAB TYPE BDCMSGCOLL.
PARAMETERS:P_FILE TYPE localfile.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
LV_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = LV_FILE
HAS_FIELD_SEPARATOR = 'X'
tables
data_tab = LT_DATA
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.
* Include bdcrecx1_s:
* The call transaction using is called WITH AUTHORITY-CHECK!
* If you have own auth.-checks you can use include bdcrecx1 instead.
*include bdcrecx1_s.
*start-of-selection.
LOOP AT LT_DATA INTO LS_DATA.
*perform open_group.
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'
ls_data-matnr.
* 'PMAT'.
perform bdc_field using 'RMMG1-MBRSH'
ls_data-mbrsh.
* 'P'.
perform bdc_field using 'RMMG1-MTART'
ls_data-mtart.
* 'NLAG'.
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'
'=BU'.
perform bdc_field using 'MAKT-MAKTX'
ls_data-maktx.
* 'Test material'.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
ls_data-meins.
* 'EA'.
perform bdc_field using 'MARA-MTPOS_MARA'
'NLAG'.
CALL TRANSACTION 'MM01' USING LT_BDCDATA MODE 'A' UPDATE 'S' MESSAGES INTO LT_MSGTAB.
REFRESH:LT_BDCDATA.
*perform bdc_transaction using 'MM01'.
*perform close_group.
ENDLOOP.
LOOP AT LT_MSGTAB INTO LS_MSGTAB.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = LS_MSGTAB-MSGID
msgnr = LS_MSGTAB-MSGNR
MSGV1 = LS_MSGTAB-MSGV1
MSGV2 = LS_MSGTAB-MSGV2
MSGV3 = LS_MSGTAB-MSGV3
MSGV4 = LS_MSGTAB-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = LV_MSG .
WRITE:/ LV_MSG.
ENDLOOP.
*Copied from Include bdcrecx1_s
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR LS_BDCDATA.
LS_BDCDATA-PROGRAM = PROGRAM.
LS_BDCDATA-DYNPRO = DYNPRO.
LS_BDCDATA-DYNBEGIN = 'X'.
APPEND LS_BDCDATA TO LT_BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR LS_BDCDATA.
LS_BDCDATA-FNAM = FNAM.
LS_BDCDATA-FVAL = FVAL.
APPEND LS_BDCDATA TO LT_BDCDATA.
* ENDIF.
ENDFORM.
*Copied from Include bdcrecx1_s
Input:
Upload File and press enter continuously.
Output:
Good Blog Article.Thanks for sharing the information.
ReplyDeleteSAP Ariba Training in Hyderabad
Sap Ariba Training Institutes in Hyderabad
SAP Arbia Online Training in Hyderabad
SAP Ariba Training Course in Hyderabad
SAP Ariba Online Training in India
SAP Ariba Training in Ameerpet
SAP Ariba Training
SAP Ariba Online Training