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

  1. Call Transaction Method
  2. Session Method
  3. Direct Input Method
Note: Do not use F4 or F1 while recording and make sure passing correct data

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: 


 

Comments

Post a Comment

Popular posts from this blog

Passing Dynamic Variables to SO10 TEXT

Implicit Enhancement with Example

TMG Events