Calling transaction MM01

Hi,
I have created a report and my requirement is to Call transaction MM02 and I wan to skip initial screen as well as View selection screen.
I have tried it with call transaction MM02 and skip first screen.But it is not satisying my requirement.
Is there any way to do this?

Hello,
Record a BDC to solve ur issue.
Vasanth

Similar Messages

  • How to skip first screen while calling transaction

    Hi all,
    I am using interactive alv.
    if i select one line and press details
    that must go to another screen.
    In that i must skip first screen and directly go to the details of that first screen.
    suppose i am using the code as follows
    call transaction mm01 and skip first screen
    this is giving me error.
    how to solve the problem.
    thanks and regards,
    giri.

    hi giri,
    For ur requirement, u can use SKIP FIRST SCREEN addition for CALL TRANSACTION Command.
    Before this, u have to use SET PARAMETER ID Command to pass the required values for transaction.
    Example, In transaction VA01, we have to set parameter AUN to pass the sale order number to the transaction.
    <b>
    AT LINE-SELECTION .
    SET PARAMETER ID 'AUN' FIELD w_vbeln.
    CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN .</b>
    where w_vbeln contains the sale ordre number. Now VA01 runs for this sale order number..... And AUN is the PARAMETER to be set before calling VA01 TCODE.
    similarly, check the PARAMETER associated with MM01 Tcode and initialize that parameter and call the code in the similar way.
    To check parameter Id of MM01,
    1) Enter MM01 Transaction
    2) Press F1 on Material Field
    3) Select Technical Info
    4) u can find Parameter ID associated with this field.
    check these links for full details.
    call transaction...
    http://help.sap.com/saphelp_47x200/helpdata/en/78/21761c51ce11d189570000e829fbbd/frameset.htm
    at line selection,
    http://help.sap.com/saphelp_47x200/helpdata/en/9f/dba2c435c111d1829f0000e829fbfe/frameset.htm
    get/set parameter:
    http://help.sap.com/saphelp_nw04/helpdata/en/5b/7bc3775d1111d295ad0000e82de14a/frameset.htm
    Reward me if useful........
    Harimanjesh AN

  • How to use CTUPARAMS in CALL TRANSACTION

    Hi ,
    How to pass ctuparms in CALL TRANSACTIION.
    Please give me some example.
    Thanks in Advance,
    Kuma A.

    Hi,
    Check this example..
      DATA: ls_params TYPE ctu_params.
      DATA: t_bdcdata TYPE STANDARD TABLE OF bdcdata.
      ls_params-dismode  = 'N'.   " No display
      ls_params-updmode  = 'S'.   " Synchronous
      ls_params-defsize  = 'X'.   " Default window size.
      CALL TRANSACTION 'MM01' USING t_bdcdata OPTIONS FROM ls_params.
    Thanks
    Naren

  • Catching Errors in Call Transaction

    Hi All,
    I have develop the BDC using call transaction for MM01 transaction but i need to catch the success messages as well as errors in a log file that i wanna download. below is the code for the same and is it mandatory to give the update mode.please let me know.
    DATA: i_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
          i_error TYPE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
        PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY,
                p_mode(1) DEFAULT 'A'.
               p_erfile TYPE rlgrap-filename.
    SELECTION-SCREEN : BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
    PARAMETER: PBROW_HD TYPE I, PEROW_HD TYPE I, PBCOL_HD TYPE I, PECOL_HD TYPE I.
    SELECTION-SCREEN : END OF BLOCK BLK1.
    DATA: T_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    Data: begin of record occurs 0,
          MATNR(40),
          MBRSH(01),
          MTART(04),
          MAKTX(40),
          MEINS(03),
          MATKL(09),
          BISMT(18),
          UMREN_02(05),
          UMREN_03(05),
          MEINH_02(03),
          MEINH_03(03),
          UMREZ_02(05),
          UMREZ_03(05),
          WERKS(04),
          EKGRP(3) ,
          LGORT(04),
          DISMM(02),
          DISPO(03),   "Cash Discount Indicator
          DISLS(02),
          BESKZ(1),
          DZEIT(3),
          FHORI(3),
          PERKZ(1),
          MTVFP(02),
          IPRKZ(01),
          END OF RECORD.
          DATA: v_filename LIKE RLGRAP-FILENAME.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    PERFORM read_file CHANGING 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.
      PERFORM upload_file.
      PERFORM bdc
    PERFORM error_download
    FORM UPLOAD_FILE .
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
    filename = p_file
    i_begin_col = PBCOL_HD
    i_begin_row = PBROW_HD
    i_end_col =  PECOL_HD
    i_end_row = PEROW_HD
    TABLES
    intern = T_EXCEL
    EXCEPTIONS
    inconsistent_parameters = 1
    upload_ole = 2
    OTHERS = 3.
    LOOP AT T_EXCEL.
    CASE T_EXCEL-COL.
    WHEN 1.  MOVE T_EXCEL-VALUE TO record-MATNR.
    WHEN 2.  MOVE T_EXCEL-VALUE TO record-MBRSH.
    WHEN 3.  MOVE T_EXCEL-VALUE TO RECORD-MTART.
    WHEN 4.  MOVE T_EXCEL-VALUE TO RECORD-MAKTX.
    WHEN 5.  MOVE T_EXCEL-VALUE TO RECORD-MEINS.
    WHEN 6.  MOVE T_EXCEL-VALUE TO RECORD-MATKL.
    WHEN 7.  MOVE T_EXCEL-VALUE TO RECORD-BISMT.
    WHEN 8.  MOVE T_EXCEL-VALUE TO RECORD-UMREN_02.
    WHEN 9.  MOVE T_EXCEL-VALUE TO RECORD-UMREN_03.
    WHEN 10. MOVE T_EXCEL-VALUE TO RECORD-MEINH_02.
    WHEN 11. MOVE T_EXCEL-VALUE TO RECORD-MEINH_03.
    WHEN 12. MOVE T_EXCEL-VALUE TO RECORD-UMREZ_02.
    WHEN 13. MOVE T_EXCEL-VALUE TO RECORD-UMREZ_03.
    WHEN 14. MOVE T_EXCEL-VALUE TO RECORD-WERKS.
    WHEN 15. MOVE T_EXCEL-VALUE TO RECORD-EKGRP.
    WHEN 16. MOVE T_EXCEL-VALUE TO RECORD-LGORT.
    WHEN 17. MOVE T_EXCEL-VALUE TO RECORD-DISMM.
    WHEN 18. MOVE T_EXCEL-VALUE TO RECORD-DISPO.
    WHEN 19. MOVE T_EXCEL-VALUE TO RECORD-DISLS.
    WHEN 20. MOVE T_EXCEL-VALUE TO RECORD-BESKZ.
    WHEN 21. MOVE T_EXCEL-VALUE TO RECORD-DZEIT.
    WHEN 22. MOVE T_EXCEL-VALUE TO RECORD-FHORI.
    WHEN 23. MOVE T_EXCEL-VALUE TO RECORD-PERKZ.
    WHEN 24. MOVE T_EXCEL-VALUE TO RECORD-MTVFP.
    WHEN 25. MOVE T_EXCEL-VALUE TO RECORD-IPRKZ.
    ENDCASE.
      AT END OF ROW.
    APPEND record.
    CLEAR  record.
    ENDAT.
    ENDLOOP.
    ENDFORM.                    " UPLOAD_FILE
    *&      Form  BDC
          text
    -->  p1        text
    <--  p2        text
    FORM BDC .
    loop at record.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=AUSW'.
    perform bdc_field       using 'RMMG1-MATNR'
                                   record-matnr.
    perform bdc_field       using 'RMMG1-MBRSH'
                                   record-mbrsh.
    perform bdc_field       using 'RMMG1-MTART'
                                   record-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'
                                  '=ZU01'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-BISMT'.
    perform bdc_field       using 'MARA-MEINS'
                                   record-meins.
    perform bdc_field       using 'MARA-MATKL'
                                   record-matkl.
    perform bdc_field       using 'MARA-BISMT'
                                   record-bismt.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ZU02'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MATNR'.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=MAIN'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'SMEINH-UMREZ(03)'.
    perform bdc_field       using 'SMEINH-UMREN(02)'
                                  record-umren_02.
    perform bdc_field       using 'SMEINH-UMREN(03)'
                                   record-umren_03.
    perform bdc_field       using 'SMEINH-MEINH(02)'
                                   record-meinh_02.
    perform bdc_field       using 'SMEINH-MEINH(03)'
                                   record-meinh_03.
    perform bdc_field       using 'SMEINH-UMREZ(02)'
                                   record-umrez_02.
    perform bdc_field       using 'SMEINH-UMREZ(03)'
                                   record-umrez_03.
    *perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=MAIN'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'MAKT-MAKTX'.
    *perform bdc_field       using 'MAKT-MAKTX'
                                 record-maktx.
    *perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=SP02'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'MAKT-MAKTX'.
    *perform bdc_field       using 'MAKT-MAKTX'
                                 record-maktx.
    *perform bdc_field       using 'MARA-MEINS'
                                 record-meins.
    *perform bdc_field       using 'MARA-MATKL'
                                  record-matkl.
    *perform bdc_field       using 'MARA-BISMT'
                                 record-bismt.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP09'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '0081'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-WERKS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-WERKS'
                                  record-werks.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP10'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-EKGRP'.
    perform bdc_field       using 'MARA-MEINS'
                                  record-meins.
    perform bdc_field       using 'MARC-EKGRP'
                                  record-ekgrp.
    perform bdc_field       using 'MARA-MATKL'
                                  record-matkl.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP11'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4040'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP12'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '0081'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-LGORT'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'RMMG1-LGORT'
                                  record-lgort.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP13'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'MARA-MEINS'
                                   record-meins.
    perform bdc_field       using 'MARC-EKGRP'
                                  record-ekgrp.
    perform bdc_field       using 'MARC-DISMM'
                                   record-dismm.
    perform bdc_field       using 'MARC-DISPO'
                                  record-dispo.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-DISLS'.
    perform bdc_field       using 'MARC-DISLS'
                                  record-disls.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  'SP14'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'MARC-BESKZ'
                                  record-beskz.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-FHORI'.
    perform bdc_field       using 'MARC-FHORI'
                                   record-fhori.
    perform bdc_field       using 'MARC-DZEIT'
                                  record-dzeit.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP15'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'MARC-PERKZ'
                                   record-perkz.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-MTVFP'.
    perform bdc_field       using 'MARC-MTVFP'
                                  record-mtvfp.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP19'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP20'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_field       using 'MARA-MEINS'
                                  record-meins.
    perform bdc_field       using 'MARA-IPRKZ'
                                   record-iprkz.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SP23'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  record-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   record-maktx.
    perform bdc_field       using 'MARA-MEINS'
                                   record-meins.
    CALL TRANSACTION  'MM01' USING i_bdcdata MODE p_mode.
    CLEAR I_BDCDATA[].
    ENDLOOP.
    ENDFORM.                    " BDC
    FORM bdc_dynpro USING program dynpro.
      CLEAR i_bdcdata.
      i_bdcdata-program  = program.
      i_bdcdata-dynpro   = dynpro.
      i_bdcdata-dynbegin = 'X'.
      APPEND i_bdcdata.
    ENDFORM.
    FORM bdc_field USING fnam fval.
      CLEAR i_bdcdata.
      i_bdcdata-fnam = fnam.
      i_bdcdata-fval = fval.
      APPEND i_bdcdata.
    ENDFORM.
    FORM ERROR_DOWNLOAD .
    DATA: v_errorpath TYPE string.
      v_errorpath = p_erfile.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
       BIN_FILESIZE                  =
          filename                      = v_errorpath
         filetype                      = 'ASC'
       APPEND                        = ' '
       WRITE_FIELD_SEPARATOR         = ' '
       HEADER                        = '00'
       TRUNC_TRAILING_BLANKS         = ' '
       WRITE_LF                      = 'X'
       COL_SELECT                    = ' '
       COL_SELECT_MASK               = ' '
       DAT_MODE                      = ' '
    IMPORTING
       FILELENGTH                    =
        TABLES
          data_tab                      = i_error
    EXCEPTIONS
       FILE_WRITE_ERROR              = 1
       NO_BATCH                      = 2
       GUI_REFUSE_FILETRANSFER       = 3
       INVALID_TYPE                  = 4
       NO_AUTHORITY                  = 5
       UNKNOWN_ERROR                 = 6
       HEADER_NOT_ALLOWED            = 7
       SEPARATOR_NOT_ALLOWED         = 8
       FILESIZE_NOT_ALLOWED          = 9
       HEADER_TOO_LONG               = 10
       DP_ERROR_CREATE               = 11
       DP_ERROR_SEND                 = 12
       DP_ERROR_WRITE                = 13
       UNKNOWN_DP_ERROR              = 14
       ACCESS_DENIED                 = 15
       DP_OUT_OF_MEMORY              = 16
       DISK_FULL                     = 17
       DP_TIMEOUT                    = 18
       FILE_NOT_FOUND                = 19
       DATAPROVIDER_EXCEPTION        = 20
       CONTROL_FLUSH_ERROR           = 21
       OTHERS                        = 22
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.

    Can't read your code, but what you need would be something like
    CALL TRANSACTION ... USING bdcdata MESSAGES it_messages UPDATE ...
    In messages you will have both succesfully performed steps (field MSGTYP = 'S' ) and the ones which failed (MSGTYP = 'E'),
    so simply loop at that table and create error log based on that messages, then download it.
    Regards
    Marcin

  • Caprturing error log in call transaction?

    hoiw can i get all the error in call transaction method, can any one guide me?

    see this
    *& Report ZMATERIAL
    report zmaterial_fert.
    selection-screen :begin of block bl1 with frame title  text-001.
    parameters : p_fname type rlgrap-filename,
                   p_lgort type rlgrap-filename,
                   p_update(1) default 'N',
                 p_bdcgrp(12) default 'MM_MASTER'.
    selection-screen end of block bl1.
    data: v_chr_opengrp type c,
          r_matnr like mara-matnr,
          r_werks like marc-werks,
          v_str_fname   type string.
    data : begin of bdc_itab occurs 0.
            include structure bdcdata.
    data : end of bdc_itab.
    data: begin of messtab occurs 0.
            include structure bdcmsgcoll.
    data: end   of messtab.
    data: begin of count,
            inrec(9) type n,               " input I_MATERIAL count
            create(9) type n,              " create count
            error(9) type n,               " error count
            bdc(9) type n,                 " count of BDC creates
          end of count.
    data : begin of i_material occurs 0,
         matnr(018) type c,  "Material number
         mbrsh(001) type c,  "Industry sector
         mtart(004) type c,  "Material type
         werks(004) type c,  "Plant
         lgort(004),
         lgnum(004),
         vkorg(004),
         vtweg(002),
         mtpos_mara(004),
         spart(002),
         dwerk(004),
         taxkm(001),
         versg(001),
       MTPOS(004),
         maktx(040) type c,  "Material description
         meins(003) type c,  "Base unit of measure
        matkl(009) type c,  "Material group
        bismt(018),         "old material code
        brgew(017) type c,  "Gross weight
        gewei(003) type c,  "Weight unit
        ntgew(017) type c,  "Net weight
        magrv(004) type c,  "Matl grp pack matls
        tragr(004),         "
        ladgr(004),
        prctr(007),
      EKGRP(004),
      EKWSL(004),
        chap(012),
        mattype(001),
        nogrs(001),
        outmat(018),
        valid(010),
        curr(005),
        netdeal(018),
        asess(018),
        disgr(004),
        dismm(002) type c,
        dispo(003),
       LGORT(004),
        disls(002),
        maabc(001),
       lgpro(004),
       webaz(003),
       lgfsb(004),
        plifz(003),
       STRGR(002),
        fhori(003),
        sfepr(004),
        fevor(003),
        sfcpf(006),
        beskz(001),
       perkz(001),
      VRMOD(001),
      VINT1(003),
      VINT2(003),
      ALTSL(001),
      SBDKZ(001),
      FERVOR(002),
      SFCPF(006),
       stprs(015),
      AWSLS(006),
       mtvfp(002),
    STGRP(002),
    *PRCTR(007),
      bklas(004),
      vprsv(001),
      peinh(006),
    *EKALR(015),
      verpr(015),
      hrkft(002),
    *HKMAT,
    kosgr(010),
    *LOSGR(018),
    end of i_material.
    at selection-screen on value-request for p_fname.
      call function 'KD_GET_FILENAME_ON_F4'
        exporting
          program_name  = 'Z_MM_MATERIAL_UPLOAD'
          dynpro_number = '1000'
          field_name    = 'P_FNAME'
        changing
          file_name     = p_fname.
    at selection-screen on value-request for p_lgort.
    call function 'KD_GET_FILENAME_ON_F4'
        exporting
          program_name  = 'ZMATERIAL'
          dynpro_number = '1000'
          field_name    = 'P_FNAME'
        changing
          file_name     = p_lgort.
    start-of-selection.
      if p_fname is initial.
        message i016(rp) with 'Please enter a file name'.
        leave list-processing.
      else.
        move p_fname to  v_str_fname.
      endif.
      call function 'GUI_UPLOAD'
        exporting
          filetype                = 'ASC'
          filename                = v_str_fname
          has_field_separator     = 'X'
        tables
          data_tab                = i_material
        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.
        message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      loop at i_material.
      r_matnr = i_material-matnr.
        r_werks = i_material-werks.
        add 1 to count-inrec.
        perform bdc_dynpro      using 'SAPLMGMM' '0060'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'RMMG1-MATNR'
                                      i_material-matnr.
        perform bdc_field       using 'RMMG1-MTART'
                                      i_material-mtart.
        perform bdc_field       using 'RMMG1-MBRSH'
                                      i_material-mbrsh.
        perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(17)'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
    'X'.
    *PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(07)'
    *'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(08)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(05)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(06)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(04)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(09)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(10)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(11)'
    'X'.
    *PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(12)'
    *'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(13)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(14)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(15)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(16)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(17)'
    'X'.
    perform bdc_field using 'BDC_OKCODE' '=P+'.
    perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(07)'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(04)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(05)'
    'X'.
        perform bdc_dynpro      using 'SAPLMGMM' '0080'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RMMG1-LGNUM'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=ENTR'.
        perform bdc_field       using 'RMMG1-WERKS'
                                      i_material-werks.
        perform bdc_field       using 'RMMG1-LGORT'
                                      i_material-lgort.
        perform bdc_field       using 'RMMG1-LGNUM'
                                      i_material-lgnum.
        perform bdc_field       using 'RMMG1-VKORG'
                                      i_material-vkorg.
        perform bdc_field       using 'RMMG1-VTWEG'
                                      i_material-vtweg.
        perform bdc_dynpro      using 'SAPLMGMM' '4004'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
        perform bdc_field       using 'MARA-MEINS'
                                      i_material-meins.
        perform bdc_field       using 'MARA-MATKL'
                                      i_material-matkl.
        perform bdc_field       using 'MARA-BISMT'
                                      i_material-bismt.
        perform bdc_field       using 'MARA-BRGEW'
                                      i_material-brgew.
        perform bdc_field       using 'MARA-GEWEI'
                                      i_material-gewei.
        perform bdc_field       using 'MARA-NTGEW'
                                      i_material-ntgew.
        perform bdc_field       using 'MARA-MAGRV'
                                  i_material-magrv.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                i_material-maktx.
        perform bdc_dynpro      using 'SAPLMGMM' '4000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
        perform bdc_field       using 'MARA-MEINS'
                                      i_material-meins.
        perform bdc_field       using 'MARA-MATKL'
                                      i_material-matkl.
         perform bdc_field       using 'MARA-SPART'
                                      i_material-spart.
        perform bdc_field       using 'MVKE-DWERK'
                                      i_material-dwerk.
        perform bdc_field       using 'BDC_CURSOR'
                                      'MG03STEUER-TAXKM(01)'.
        perform bdc_field       using 'MG03STEUER-TAXKM(01)'
                                      i_material-taxkm.
        perform bdc_dynpro      using 'SAPLMGMM' '4200'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
       perform bdc_dynpro      using 'SAPLMGMM' '4000'.
       perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
       perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                 i_material-maktx.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                  i_material-mtpos_mara.
    perform bdc_field       using 'MVKE-versg'
                                  i_material-versg.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
        perform bdc_field       using 'MARA-BRGEW'
                                      i_material-brgew.
        perform bdc_field       using 'MARA-GEWEI'
                                      i_material-gewei.
        perform bdc_field       using 'MARA-NTGEW'
                                      i_material-ntgew.
        perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-MAGRV'.
      perform bdc_field       using 'MARA-MAGRV'
                                  i_material-magrv.
    perform bdc_field       using 'MARA-TRAGR'
                                  i_material-tragr.
    perform bdc_field       using 'MARC-LADGR'
                                  i_material-ladgr.
    perform bdc_field       using 'MARC-PRCTR'
                                  i_material-prctr.
    perform bdc_field       using 'MARC-MTVFP'
                                 i_material-mtvfp.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_1IASSVAL-J_1IVALASS'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICHID'
                                  i_material-chap.
    perform bdc_field       using 'J_1IMTCHID-J_1ISUBIND'
                                 'X'..
    perform bdc_field       using 'J_1IMTCHID-J_1ICAPIND'
                                 i_material-mattype.
    perform bdc_field       using 'J_1IMTCHID-J_1IGRXREF'
                                  i_material-nogrs.
    perform bdc_field       using 'J_1IMODDET-J_1IMOOM'
                                  i_material-outmat.
    perform bdc_field       using 'J_1IASSVAL-J_1IFRDATE'
                                  i_material-valid.
    perform bdc_field       using 'J_1IASSVAL-J_1IWAERS'
                                  i_material-curr.
    perform bdc_field       using 'J_1IASSVAL-J_1IVALNDP'
                                 i_material-netdeal.
    perform bdc_field       using 'J_1IASSVAL-J_1IVALASS'
                                  i_material-asess.
    *perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'MAKT-MAKTX'.
    *perform bdc_field       using 'MAKT-MAKTX'
                                 I_MATERIAL-MAKTX.
    *perform bdc_field       using 'MVKE-MTPOS'
                                 I_MATERIAL-MTPOS.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  'ENTR'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'MARA-MEINS'
                                  i_material-meins.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-DISMM'.
    perform bdc_field       using 'MARC-DISMM'
                                  i_material-dismm.
    perform bdc_field       using 'MARC-DISPO'
                                  i_material-dispo.
    perform bdc_field       using 'MARC-DISLS'
                                  i_material-disls.
    perform bdc_field       using 'MARC-MAABC'
                                  i_material-maabc.
    perform bdc_field       using 'MARC-DISGR'
                                  i_material-disgr.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'MARC-FHORI'
                                  i_material-fhori.
    perform bdc_field       using 'MARC-LGPRO'
                                  i_material-lgpro.
    perform bdc_field       using 'MARC-LGFSB'
                                  i_material-lgfsb.
    perform bdc_field       using 'MARC-PLIFZ'
                                      i_material-plifz.
    *perform bdc_field       using 'MARC-STRGR'
                               I_MATERIAL-STRGR.
    perform bdc_field       using  'MARC-BESKZ'
                                 i_material-beskz.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    *perform bdc_field       using 'MARC-STRGR'
                               I_MATERIAL-STRGR.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
       perform bdc_field       using 'MARC-SAUFT'
                                  'X'.
    perform bdc_field       using 'MARC-SFEPR'
                                  i_material-sfepr.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_field       using 'MArc-FEVOR'
                                  i_material-fevor.
    perform bdc_field       using 'MARC-SFCPF'
                                  i_material-sfcpf.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
                                   perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    i_material-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MBEW-BKLAS'.
    perform bdc_field       using 'MBEW-BKLAS'
                                  i_material-bklas.
    perform bdc_field       using 'MBEW-VPRSV'
                                  i_material-vprsv.
    perform bdc_field       using 'MBEW-PEINH'
                                  i_material-peinh.
    perform bdc_field       using 'MBEW-STPRS'
                                  i_material-stprs.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_field       using 'Mbew-kosgr'
                                   i_material-kosgr.
    perform bdc_field       using 'Mbew-HKMAT'
                                 'X'.
    perform bdc_field       using 'Mbew-HRKFT'
                                  i_material-hrkft.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    *perform bdc_field       using 'Mbew-KOSGR'
                                 I_MATERIAL-KOSGR.
        perform bdc_dynpro      using 'SAPLSPO1' '0300'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=YES'.
        perform post_transaction.
        refresh bdc_itab.
        clear   bdc_itab.
      endloop.
    end-of-selection.
      perform finalization.
           Start new screen                                              *
    form bdc_dynpro using program dynpro.
      clear bdc_itab.
      bdc_itab-program  = program.
      bdc_itab-dynpro   = dynpro.
      bdc_itab-dynbegin = 'X'.
      append bdc_itab.
    endform.                    "bdc_dynpro
           Insert field                                                  *
    form bdc_field using fnam fval.
      if fval <> ''.
        clear bdc_itab.
        bdc_itab-fnam = fnam.
        bdc_itab-fval = fval.
        append bdc_itab.
      endif.
    endform.                    "bdc_field
    *&      Form  POST_TRANSACTION
    form post_transaction.
      refresh messtab.
      clear   messtab.
      call transaction 'MM01' using bdc_itab
                  mode p_update
                update 'S'
              messages into messtab.
    submit zrpt_plantext with flatfile = p_lgort
                          with p_matnr = r_matnr
                          with p_werks = r_werks and return.
      read table messtab with key msgtyp = 'E'.
      if sy-subrc eq 0.
        perform process_error_messages.
        add 1 to count-bdc.
        if v_chr_opengrp is initial.
          perform bdc_open_group.
        endif.
        call function 'BDC_INSERT'
          exporting
            tcode          = 'MM01'
          tables
            dynprotab      = bdc_itab
          exceptions
            internal_error = 1
            not_open       = 2
            queue_error    = 3
            tcode_invalid  = 4
            others         = 5.
        if sy-subrc <> 0.
          case sy-subrc.
            when 1.
              write: / 'Internal error'.
            when 2.
              write: / 'Not open error'.
            when 3.
              write: / 'queue error'.
            when 4.
              write: / 'tcode invalid error'.
            when others.
              write: / 'other error'.
          endcase.
        endif.
      else.
        add +1 to count-create.
        format intensified off.
        format color col_normal.
        format color col_normal off.
      endif.
      clear   bdc_itab.
      refresh bdc_itab.
    endform.                               " POST_TRANSACTION
    *&      Form  PROCESS_ERROR_MESSAGES
    form process_error_messages.
      data: begin of loc_aux_message.
              include structure message.
      data: end of loc_aux_message.
      data : msgno type sy-msgno.
      loop at messtab.
        move messtab-msgnr to msgno.
        call function 'WRITE_MESSAGE'
          exporting
            msgid  = messtab-msgid
            msgno  = msgno
            msgty  = messtab-msgtyp
            msgv1  = messtab-msgv1
            msgv2  = messtab-msgv2
            msgv3  = messtab-msgv3
            msgv4  = messtab-msgv4
          importing
            messg  = loc_aux_message
          exceptions
            others = 1.
        if sy-subrc eq 0.
          format color col_negative on.
          write: /10 i_material-matnr.
          write: /10 loc_aux_message.
          format color col_negative off.
        else.
          format color col_negative on.
          write: /10 i_material-matnr.
          write: / 'Error creating message'.
          format color col_negative off.
          exit.
        endif.
      endloop.
    endform.                               " PROCESS_ERROR_MESSAGES
    *&      Form  BDC_OPEN_GROUP
    form bdc_open_group.
      call function 'BDC_OPEN_GROUP'
        exporting
          client              = sy-mandt
          group               = p_bdcgrp
          holddate            = sy-datum
          keep                = 'X'
          user                = sy-uname
        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 eq 0.
        v_chr_opengrp = 'X'.
      endif.
    endform.                               " BDC_OPEN_GROUP
    *&      Form  FINALIZATION
    form finalization.
      if v_chr_opengrp = 'X'.
        call function 'BDC_CLOSE_GROUP'
          exceptions
            not_open    = 1
            queue_error = 2
            others      = 3.
      endif.
      get time.
      skip 2.
      write: / 'Time', sy-uzeit.
      skip.
      format color col_total on.
      write: / 'Total Records: ',           40 count-inrec.
      write: / 'PERNR not of Emp Group 6 ', 40 count-error.
      write: / 'Records Created: ',         40 count-create.
      write: / 'BDC Create in group: ',     40 count-bdc.
      if v_chr_opengrp = 'X'.
        skip 1.
        format intensified on.
        format color col_negative on.
        write: / 'PLEASE USE TRANSACTION "SM35" ',
                 'TO PROCESS THE GENERATED BDC SESSION ... ',
                 p_bdcgrp.
      endif.
    endform.                               " FINALIZATION

  • BDC to call transaction

    Hi,
    How to write a code to call transaction from BDC?

    hi,
    *& Report ZMATERIAL
    *& *& Description : Master Data Upload for material type FERT
    report zmaterial_fert.
    selection-screen :begin of block bl1 with frame title  text-001.
    parameters : p_fname type rlgrap-filename,
                   p_lgort type rlgrap-filename,
                   p_update(1) default 'N',
                 p_bdcgrp(12) default 'MM_MASTER'.
    selection-screen end of block bl1.
    data: v_chr_opengrp type c,
          r_matnr like mara-matnr,
          r_werks like marc-werks,
          v_str_fname   type string.
    data : begin of bdc_itab occurs 0.
            include structure bdcdata.
    data : end of bdc_itab.
    data: begin of messtab occurs 0.
            include structure bdcmsgcoll.
    data: end   of messtab.
    data: begin of count,
            inrec(9) type n,               " input I_MATERIAL count
            create(9) type n,              " create count
            error(9) type n,               " error count
            bdc(9) type n,                 " count of BDC creates
          end of count.
    data : begin of i_material occurs 0,
         matnr(018) type c,  "Material number
         mbrsh(001) type c,  "Industry sector
         mtart(004) type c,  "Material type
         werks(004) type c,  "Plant
         lgort(004),
         lgnum(004),
         vkorg(004),
         vtweg(002),
         mtpos_mara(004),
         spart(002),
         dwerk(004),
         taxkm(001),
         versg(001),
       MTPOS(004),
         maktx(040) type c,  "Material description
         meins(003) type c,  "Base unit of measure
        matkl(009) type c,  "Material group
        bismt(018),         "old material code
        brgew(017) type c,  "Gross weight
        gewei(003) type c,  "Weight unit
        ntgew(017) type c,  "Net weight
        magrv(004) type c,  "Matl grp pack matls
        tragr(004),         "
        ladgr(004),
        prctr(007),
      EKGRP(004),
      EKWSL(004),
        chap(012),
        mattype(001),
        nogrs(001),
        outmat(018),
        valid(010),
        curr(005),
        netdeal(018),
        asess(018),
        disgr(004),
        dismm(002) type c,
        dispo(003),
       LGORT(004),
        disls(002),
        maabc(001),
       lgpro(004),
       webaz(003),
       lgfsb(004),
        plifz(003),
       STRGR(002),
        fhori(003),
        sfepr(004),
        fevor(003),
        sfcpf(006),
        beskz(001),
       perkz(001),
      VRMOD(001),
      VINT1(003),
      VINT2(003),
      ALTSL(001),
      SBDKZ(001),
      FERVOR(002),
      SFCPF(006),
       stprs(015),
      AWSLS(006),
       mtvfp(002),
    STGRP(002),
    *PRCTR(007),
      bklas(004),
      vprsv(001),
      peinh(006),
    *EKALR(015),
      verpr(015),
      hrkft(002),
    *HKMAT,
    kosgr(010),
    *LOSGR(018),
    end of i_material.
    at selection-screen on value-request for p_fname.
      call function 'KD_GET_FILENAME_ON_F4'
        exporting
          program_name  = 'Z_MM_MATERIAL_UPLOAD'
          dynpro_number = '1000'
          field_name    = 'P_FNAME'
        changing
          file_name     = p_fname.
    at selection-screen on value-request for p_lgort.
    call function 'KD_GET_FILENAME_ON_F4'
        exporting
          program_name  = 'ZMATERIAL'
          dynpro_number = '1000'
          field_name    = 'P_FNAME'
        changing
          file_name     = p_lgort.
    start-of-selection.
      if p_fname is initial.
        message i016(rp) with 'Please enter a file name'.
        leave list-processing.
      else.
        move p_fname to  v_str_fname.
      endif.
      call function 'GUI_UPLOAD'
        exporting
          filetype                = 'ASC'
          filename                = v_str_fname
          has_field_separator     = 'X'
        tables
          data_tab                = i_material
        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.
        message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      loop at i_material.
      r_matnr = i_material-matnr.
        r_werks = i_material-werks.
        add 1 to count-inrec.
        perform bdc_dynpro      using 'SAPLMGMM' '0060'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'RMMG1-MATNR'
                                      i_material-matnr.
        perform bdc_field       using 'RMMG1-MTART'
                                      i_material-mtart.
        perform bdc_field       using 'RMMG1-MBRSH'
                                      i_material-mbrsh.
        perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(17)'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
    'X'.
    *PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(07)'
    *'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(08)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(05)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(06)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(04)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(09)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(10)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(11)'
    'X'.
    *PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(12)'
    *'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(13)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(14)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(15)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(16)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(17)'
    'X'.
    perform bdc_field using 'BDC_OKCODE' '=P+'.
    perform bdc_dynpro using 'SAPLMGMM' '0070'.
    perform bdc_field using 'BDC_CURSOR'
    'MSICHTAUSW-DYTXT(07)'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(02)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(04)'
    'X'.
    perform bdc_field using 'MSICHTAUSW-KZSEL(05)'
    'X'.
        perform bdc_dynpro      using 'SAPLMGMM' '0080'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RMMG1-LGNUM'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=ENTR'.
        perform bdc_field       using 'RMMG1-WERKS'
                                      i_material-werks.
        perform bdc_field       using 'RMMG1-LGORT'
                                      i_material-lgort.
        perform bdc_field       using 'RMMG1-LGNUM'
                                      i_material-lgnum.
        perform bdc_field       using 'RMMG1-VKORG'
                                      i_material-vkorg.
        perform bdc_field       using 'RMMG1-VTWEG'
                                      i_material-vtweg.
        perform bdc_dynpro      using 'SAPLMGMM' '4004'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
        perform bdc_field       using 'MARA-MEINS'
                                      i_material-meins.
        perform bdc_field       using 'MARA-MATKL'
                                      i_material-matkl.
        perform bdc_field       using 'MARA-BISMT'
                                      i_material-bismt.
        perform bdc_field       using 'MARA-BRGEW'
                                      i_material-brgew.
        perform bdc_field       using 'MARA-GEWEI'
                                      i_material-gewei.
        perform bdc_field       using 'MARA-NTGEW'
                                      i_material-ntgew.
        perform bdc_field       using 'MARA-MAGRV'
                                  i_material-magrv.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                i_material-maktx.
        perform bdc_dynpro      using 'SAPLMGMM' '4000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
        perform bdc_field       using 'MARA-MEINS'
                                      i_material-meins.
        perform bdc_field       using 'MARA-MATKL'
                                      i_material-matkl.
         perform bdc_field       using 'MARA-SPART'
                                      i_material-spart.
        perform bdc_field       using 'MVKE-DWERK'
                                      i_material-dwerk.
        perform bdc_field       using 'BDC_CURSOR'
                                      'MG03STEUER-TAXKM(01)'.
        perform bdc_field       using 'MG03STEUER-TAXKM(01)'
                                      i_material-taxkm.
        perform bdc_dynpro      using 'SAPLMGMM' '4200'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'MAKT-MAKTX'
                                      i_material-maktx.
       perform bdc_dynpro      using 'SAPLMGMM' '4000'.
       perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
       perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                 i_material-maktx.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                  i_material-mtpos_mara.
    perform bdc_field       using 'MVKE-versg'
                                  i_material-versg.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
        perform bdc_field       using 'MARA-BRGEW'
                                      i_material-brgew.
        perform bdc_field       using 'MARA-GEWEI'
                                      i_material-gewei.
        perform bdc_field       using 'MARA-NTGEW'
                                      i_material-ntgew.
        perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-MAGRV'.
      perform bdc_field       using 'MARA-MAGRV'
                                  i_material-magrv.
    perform bdc_field       using 'MARA-TRAGR'
                                  i_material-tragr.
    perform bdc_field       using 'MARC-LADGR'
                                  i_material-ladgr.
    perform bdc_field       using 'MARC-PRCTR'
                                  i_material-prctr.
    perform bdc_field       using 'MARC-MTVFP'
                                 i_material-mtvfp.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'J_1IASSVAL-J_1IVALASS'.
    perform bdc_field       using 'J_1IMTCHID-J_1ICHID'
                                  i_material-chap.
    perform bdc_field       using 'J_1IMTCHID-J_1ISUBIND'
                                 'X'..
    perform bdc_field       using 'J_1IMTCHID-J_1ICAPIND'
                                 i_material-mattype.
    perform bdc_field       using 'J_1IMTCHID-J_1IGRXREF'
                                  i_material-nogrs.
    perform bdc_field       using 'J_1IMODDET-J_1IMOOM'
                                  i_material-outmat.
    perform bdc_field       using 'J_1IASSVAL-J_1IFRDATE'
                                  i_material-valid.
    perform bdc_field       using 'J_1IASSVAL-J_1IWAERS'
                                  i_material-curr.
    perform bdc_field       using 'J_1IASSVAL-J_1IVALNDP'
                                 i_material-netdeal.
    perform bdc_field       using 'J_1IASSVAL-J_1IVALASS'
                                  i_material-asess.
    *perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'MAKT-MAKTX'.
    *perform bdc_field       using 'MAKT-MAKTX'
                                 I_MATERIAL-MAKTX.
    *perform bdc_field       using 'MVKE-MTPOS'
                                 I_MATERIAL-MTPOS.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  'ENTR'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'MARA-MEINS'
                                  i_material-meins.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARC-DISMM'.
    perform bdc_field       using 'MARC-DISMM'
                                  i_material-dismm.
    perform bdc_field       using 'MARC-DISPO'
                                  i_material-dispo.
    perform bdc_field       using 'MARC-DISLS'
                                  i_material-disls.
    perform bdc_field       using 'MARC-MAABC'
                                  i_material-maabc.
    perform bdc_field       using 'MARC-DISGR'
                                  i_material-disgr.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  i_material-maktx.
    perform bdc_field       using 'MARC-FHORI'
                                  i_material-fhori.
    perform bdc_field       using 'MARC-LGPRO'
                                  i_material-lgpro.
    perform bdc_field       using 'MARC-LGFSB'
                                  i_material-lgfsb.
    perform bdc_field       using 'MARC-PLIFZ'
                                      i_material-plifz.
    *perform bdc_field       using 'MARC-STRGR'
                               I_MATERIAL-STRGR.
    perform bdc_field       using  'MARC-BESKZ'
                                 i_material-beskz.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    *perform bdc_field       using 'MARC-STRGR'
                               I_MATERIAL-STRGR.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
       perform bdc_field       using 'MARC-SAUFT'
                                  'X'.
    perform bdc_field       using 'MARC-SFEPR'
                                  i_material-sfepr.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_field       using 'MArc-FEVOR'
                                  i_material-fevor.
    perform bdc_field       using 'MARC-SFCPF'
                                  i_material-sfcpf.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
                                   perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                    i_material-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MBEW-BKLAS'.
    perform bdc_field       using 'MBEW-BKLAS'
                                  i_material-bklas.
    perform bdc_field       using 'MBEW-VPRSV'
                                  i_material-vprsv.
    perform bdc_field       using 'MBEW-PEINH'
                                  i_material-peinh.
    perform bdc_field       using 'MBEW-STPRS'
                                  i_material-stprs.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    perform bdc_field       using 'Mbew-kosgr'
                                   i_material-kosgr.
    perform bdc_field       using 'Mbew-HKMAT'
                                 'X'.
    perform bdc_field       using 'Mbew-HRKFT'
                                  i_material-hrkft.
    perform bdc_dynpro      using 'SAPLMGMM' '4000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MAKT-MAKTX'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   i_material-maktx.
    *perform bdc_field       using 'Mbew-KOSGR'
                                 I_MATERIAL-KOSGR.
        perform bdc_dynpro      using 'SAPLSPO1' '0300'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=YES'.
        perform post_transaction.
        refresh bdc_itab.
        clear   bdc_itab.
      endloop.
    end-of-selection.
      perform finalization.
           Start new screen                                              *
    form bdc_dynpro using program dynpro.
      clear bdc_itab.
      bdc_itab-program  = program.
      bdc_itab-dynpro   = dynpro.
      bdc_itab-dynbegin = 'X'.
      append bdc_itab.
    endform.                    "bdc_dynpro
           Insert field                                                  *
    form bdc_field using fnam fval.
      if fval <> ''.
        clear bdc_itab.
        bdc_itab-fnam = fnam.
        bdc_itab-fval = fval.
        append bdc_itab.
      endif.
    endform.                    "bdc_field
    *&      Form  POST_TRANSACTION
    form post_transaction.
      refresh messtab.
      clear   messtab.
      call transaction 'MM01' using bdc_itab
                  mode p_update
                update 'S'
              messages into messtab.
    submit zrpt_plantext with flatfile = p_lgort
                          with p_matnr = r_matnr
                          with p_werks = r_werks and return.
      read table messtab with key msgtyp = 'E'.
      if sy-subrc eq 0.
        perform process_error_messages.
        add 1 to count-bdc.
        if v_chr_opengrp is initial.
          perform bdc_open_group.
        endif.
        call function 'BDC_INSERT'
          exporting
            tcode          = 'MM01'
          tables
            dynprotab      = bdc_itab
          exceptions
            internal_error = 1
            not_open       = 2
            queue_error    = 3
            tcode_invalid  = 4
            others         = 5.
        if sy-subrc <> 0.
          case sy-subrc.
            when 1.
              write: / 'Internal error'.
            when 2.
              write: / 'Not open error'.
            when 3.
              write: / 'queue error'.
            when 4.
              write: / 'tcode invalid error'.
            when others.
              write: / 'other error'.
          endcase.
        endif.
      else.
        add +1 to count-create.
        format intensified off.
        format color col_normal.
        format color col_normal off.
      endif.
      clear   bdc_itab.
      refresh bdc_itab.
    endform.                               " POST_TRANSACTION
    *&      Form  PROCESS_ERROR_MESSAGES
    form process_error_messages.
      data: begin of loc_aux_message.
              include structure message.
      data: end of loc_aux_message.
      data : msgno type sy-msgno.
      loop at messtab.
        move messtab-msgnr to msgno.
        call function 'WRITE_MESSAGE'
          exporting
            msgid  = messtab-msgid
            msgno  = msgno
            msgty  = messtab-msgtyp
            msgv1  = messtab-msgv1
            msgv2  = messtab-msgv2
            msgv3  = messtab-msgv3
            msgv4  = messtab-msgv4
          importing
            messg  = loc_aux_message
          exceptions
            others = 1.
        if sy-subrc eq 0.
          format color col_negative on.
          write: /10 i_material-matnr.
          write: /10 loc_aux_message.
          format color col_negative off.
        else.
          format color col_negative on.
          write: /10 i_material-matnr.
          write: / 'Error creating message'.
          format color col_negative off.
          exit.
        endif.
      endloop.
    endform.                               " PROCESS_ERROR_MESSAGES
    *&      Form  BDC_OPEN_GROUP
    form bdc_open_group.
      call function 'BDC_OPEN_GROUP'
        exporting
          client              = sy-mandt
          group               = p_bdcgrp
          holddate            = sy-datum
          keep                = 'X'
          user                = sy-uname
        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 eq 0.
        v_chr_opengrp = 'X'.
      endif.
    endform.                               " BDC_OPEN_GROUP
    *&      Form  FINALIZATION
    form finalization.
      if v_chr_opengrp = 'X'.
        call function 'BDC_CLOSE_GROUP'
          exceptions
            not_open    = 1
            queue_error = 2
            others      = 3.
      endif.
      get time.
      skip 2.
      write: / 'Time', sy-uzeit.
      skip.
      format color col_total on.
      write: / 'Total Records: ',           40 count-inrec.
      write: / 'PERNR not of Emp Group 6 ', 40 count-error.
      write: / 'Records Created: ',         40 count-create.
      write: / 'BDC Create in group: ',     40 count-bdc.
      if v_chr_opengrp = 'X'.
        skip 1.
        format intensified on.
        format color col_negative on.
        write: / 'PLEASE USE TRANSACTION "SM35" ',
                 'TO PROCESS THE GENERATED BDC SESSION ... ',
                 p_bdcgrp.
      endif.
    endform.                               " FINALIZATION

  • Errors in Call Transaction

    Hi all,
    In my program I am trying to handle errors in call transaction method using bdcmsgcoll and format_message.To check this I have given some false data like trying to create materials which are already in mara tables. The data is not updated in the mara tables but No error messages are populated into the bdcmsgcoll structure. The status of all messges is success. How do messages get populated into bdcmsgcoll ?
    I am forwardimng my code too. Can anyone please explain me what's happening ? For what type of errors, Error messages get poplated into bdcmsgcoll ?
    report Z_MAT_CALL
           no standard page heading line-size 255.
    data : begin of material occurs 0,
           matnr like mara-matnr,           " Material Number
           mbrsh like mara-mbrsh,           " Industry sector
           mtart like mara-mtart,           " material Type
           maktx like makt-maktx,           " Material Description
           meins like mara-meins,           " Base Unit of Measure
           end of material.
    data fnam type string value 'C:\BW\MAT.TXT'.
    *---- BDCDATA
    data : bdcdata like bdcdata occurs 0 with header line,
           itab like bdcmsgcoll occurs 0 with header line,
           mesg(100).
    *---- Uploading data into internal table from flat File.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = fnam   "'C:\BW\MAT.TXT'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
      tables
        data_tab                      = material.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop at material.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RMMG1-MTART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RMMG1-MATNR'
                                  material-matnr.
    perform bdc_field       using 'RMMG1-MBRSH'
                                  material-mbrsh.
    perform bdc_field       using 'RMMG1-MTART'
                                  material-mtart.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(02)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                  'X'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(02)'
                                  'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'MAKT-MAKTX'
                                  material-maktx.
    perform bdc_field       using 'BDC_CURSOR'
                                  'MARA-MEINS'.
    perform bdc_field       using 'MARA-MEINS'
                                  material-meins.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                  'NORM'.
    perform bdc_transaction using 'MM01'.
    refresh bdcdata.
    endloop.
    *LOOP AT iTAB.
    *WRITE: / iTAB-TCODE,
    *iTAB-DYNAME,
    *iTAB-DYNUMB,
    *iTAB-MSGTYP,
    *iTAB-MSGSPRA,
    *iTAB-MSGID,
    *iTAB-MSGNR.
    *ENDLOOP.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
      CLEAR BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
        CLEAR BDCDATA.
    ENDFORM.
         Form  bdc_transaction
    form bdc_transaction  using    value(tcode).
    call transaction tcode using bdcdata
                           mode   'N'
                           update 'S' messages into itab.
    if sy-subrc Ne 0.
    read table itab with key msgtyp = 'E'.
    if sy-subrc = 0.
    perform check.
    endif.
    endif.
    endform.                    " bdc_transaction
         Form  check
    form check .
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
    id = itab-msgid
    lang = sy-langu
    no = itab-msgnr
    v1 = itab-msgv1
    v2 = itab-msgv2
    v3 = itab-msgv3
    v4 = itab-msgv4
    IMPORTING
    msg = mesg
    EXCEPTIONS
    NOT_FOUND = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    endform.                    " check
    Regards,
    Varun.

    Hi
    DATA :  T_BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.
    DATA :  WA_BDCMSGCOLL TYPE BDCMSGCOLL.
    DATA : ERR_LOG TYPE MESSAGE.
    Call Transaction MM01
      IF W_FLAG NE 'X'.
        CALL TRANSACTION 'MM01' USING T_BDCDATA OPTIONS FROM WA_CTU_PARAMS
                                                 MESSAGES INTO T_BDCMSGCOLL.
        COMMIT WORK AND WAIT.
        DESCRIBE TABLE T_BDCMSGCOLL LINES N.
        IF N <> 0.
          LOOP AT T_BDCMSGCOLL INTO WA_BDCMSGCOLL.
            CLEAR ERR_LOG.
            W_MSGNO = WA_BDCMSGCOLL-MSGNR.
            CALL FUNCTION 'WRITE_MESSAGE'
              EXPORTING
                MSGID = WA_BDCMSGCOLL-MSGID
                MSGNO = W_MSGNO
                MSGTY = WA_BDCMSGCOLL-MSGTYP
              IMPORTING
                MESSG = ERR_LOG.
    Error that occurs during transactoon
            IF ERR_LOG-MSGTY = 'E'.
              MOVE-CORRESPONDING T_UPLOAD TO  T_DOWNLOAD.
              MOVE ERR_LOG-MSGTX TO  T_DOWNLOAD-MSG.
              APPEND T_DOWNLOAD.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
    check structure declaration and code it may be useful
    regards
    vinod

  • Writing a Batch Input or Call Transaction program for transaction code MMAM

    Hi All,
    I'm writing a Batch Input or Call Transaction program for transaction code MMAM (Changing Material Type). The program was able to run but somehow I was not able to capture the log of the output after running MMAM. The log was not part of the SY-MESSAGE so adding in MESSTAB into call transaction doesn't help while BDC session logs shows only the transaction was processed.
    Anyone has encounter such problems before?
    Regards,
    Ramu.

    Hi
    Overview of Batch Input Session
    The first batch input method is to create a batch input session. It is the processing of this batch input session that updates the database, not the execution of the batch input program. i am giving you example for Change Vendor you practice for ur tcode
    For our example, we will use the “Change Vendor” transaction (“FK02”) to add a street address to an already existing vendor.
    Step #1
    Use “System&#61664;Status” menu path to determine online program name (SAPMF02K), screen number (0110)
    Step #2
    Use “F1” key and “Technical Info” pushbutton in each screen field to be filled to determine the field name.
    Step #3
    Determine how to proceed in the transaction
    (save the record by clicking on the ‘Save’ pushbutton or pressing the ‘F11’ key).
    The process flow of CALL TRANSACTION
    A program that uses CALL TRANSACTION USING to process legacy data should execute thefollowing steps:
    Prepare a BDCDATA structure for the transaction that you wish to run.
    Prepare a internal table to store error messages Tab_Mess like structure of BDCMSGCOLL.
    With a CALL TRANSACTION USING statement, call the transaction and prepare the BDCDATA structure. For example:
    CALL TRANSACTION ‘MM01' USING BDCDATA MODE 'A' UPDATE 'S'. MESSAGES INTO TAB_MESS.
    IF SY-SUBRC <> 0.
    <Error_handling>.
    ENDIF.
    Overview of Batch Input Session
    The first batch input method is to create a batch input session. It is the processing of this batch input session that updates the database, not the execution of the batch input program

  • Open Transaction MM01/MM02 with multiple views using  CALL TRANSACTION

    Hi All,
    I want to open MM01/MM02 with multiple views using call transaction but in the parameter ID for Views (MMX) I can pass status of only one View.
      SET PARAMETER ID 'MAT' FIELD v_mat.
      SET PARAMETER ID 'VKO' FIELD ' '.
      SET PARAMETER ID 'MTA' FIELD IT_MOFF-MTART.
      SET PARAMETER ID 'MTP' FIELD IT_MOFF-MBRSH.
      SET PARAMETER ID 'VTW' FIELD ' '.
      SET PARAMETER ID 'BWT' FIELD ' '.
      SET PARAMETER ID 'LGT' FIELD ' '.
      SET PARAMETER ID 'MXX' FIELD 'K'.     "Sales View
      SET PARAMETER ID 'MM5' FIELD ' '.
      CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN
    Please suggest.
    Regards,
    Divya

    I do not exactly understand what you mean, but what i already did:
    - I checked that the fields are from the same type.
    - KUNNR is initialized! I already had a look to the debugger, that's why i'm posting this in this forum.
    any more comments on this ?
    maybe i have to change anything in the z-transaction. Btw, this is what the parameter looks like in the transaction:
    SELECTION-SCREEN BEGIN OF BLOCK Debitoren WITH FRAME TITLE text-001.
      PARAMETERS pkunnr type kna1-kunnr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK Debitoren.
    Edited by: Sven Delangle on Sep 3, 2010 2:42 PM

  • Set cursor in a specific view of transaction MM01/MM02

    Hi,
    We have to check a condition in the user-exit EXIT_SAPLMGMU_001, for transaction MM01/MM02, and if the condition fails the client wants to set the cursor in a specific field from a specific view. Is it possible? I tried to use the sentence SET CURSOR referenced to a remote program but it doesn't work.  
    Does anybody knows how to solve this problem?
    Thanks in advance
    Regards
    Maribel

    Hi
    I hope, you have read the documetation attached with this Standard Enhancement - MGA00001.
    EXIT_SAPLMGMU_001
    Where Is the Customer Exit - EXIT_SAPLMGMU_001 called?
    The customer exit is in function module MATERIAL_UPDATE_ALL. The
    function module checks the data for errors (logical relationships,
    foreign keys, fixed domain values, and so on) when the material master
    is updated.
    Use
    o New fields
    You can make checks possible for new fields of your own. These
    checks must be identical to the checks that you carry out for your
    new fields in online maintenance.
    o Existing fields
    For existing fields, you can extend and intensify the checks.
    You can also change data for descriptions and general material data
    (MARA). For example, the descriptions can be generated from attributes
    of the material.
    Limitations
    You cannot bypass existing checks.
    Interface to Application
    The respective data of the current logical transaction is contained in
    the structures, for example, in structure WMARA for MARA. Nonrelevant
    structures are transferred with their initial values.
    General material data that can be changed (CMARA) has the structure
    MARU. This MARA view contains fewer internal fields than MARA itself. If
    WMARA is filled, CMARA is also filled when accessed.
    The customer exit contains the exception APPLICATION_ERROR for your
    self-defined error situations.
    Using the language element MESSAGE .. RAISING APPLICATION_ERROR, you can
    terminate the current (logical) transaction and display your message in
    the log.
    Also, I guess, have you put some code in the Includes available with the EXITS and then activated the Project in CMOD.
    <b>Reward points</b>
    Regards

  • Error while updating data using session and call transaction method

    Hi all,
        i have to update data using MM01 transaction from flat file to database.i have used both session method and call transaction method to do that.in both the methods data has been transferred from internal tables to screens but while updating the data that is by clicking the ok-code at the end of the transaction iam getting a dialogue box stating
       SAP EXPRESS DOCUMENT "UPDATE WAS TERMINATED" RECEIVED FROM AUTHOR "SAP".
      please tell whether the problem lies and solution for that.
                                       thanks and regards.

    hi,
    check your recording.check whether u saved your material no in recording or not.
    once again record the transacton mm01.
           MATNR LIKE RMMG1-MATNR,
           MBRSH LIKE RMMG1-MBRSH,
           MTART LIKE RMMG1-MTART,
           MAKTX LIKE MAKT-MAKTX,
           MEINS LIKE MARA-MEINS,
           MATKL LIKE MARA-MATKL,
           BISMT LIKE MARA-BISMT,
           EXTWG LIKE MARA-EXTWG,
    these are the fields which u have to take in internal table.
    this is the record which i took in my flatfile.use filetype as asc and hasfieldseperator as 'X'.
    SUDHU-6     R     ROH     MATSUDHU     "     001     7890     AA
    i did the same.but i didn't get any error.

  • Multiple transactions in Call Transactions

    Hi All,
      Can i use the below code to do multiple transactions in call transaction using the Below code.
    Call Transction for XK01 using BDCDATA1
    Call Transction for MM01 using BDCDATA2
    Call Transction for VA01 using BDCDATA3
    Please advise.
    Regards
    Krishna

    Hi
    Try the following code....
    LOOP AT ITAB1.
    < your statements here to append the rows to internal table BDCDATA1>.
    Call Transction 'XK01' using BDCDATA1.
    ENDLOOP.
    LOOP AT ITAB2.
    < your statements here to append the rows to internal table BDCDATA2>.
    Call Transction 'MM01' using BDCDATA2.
    ENDLOOP.
    LOOP AT ITAB3.
    < your statements here to append the rows to internal table BDCDATA3>.
    Call Transction 'VA01' using BDCDATA3.
    ENDLOOP.
    Hope this would help you.
    Murthy
    Edited by: Kalyanam Seetha Rama Murthy on Jul 28, 2008 6:16 AM

  • When am creating the material using the transaction MM01 getting the error

    Hi all,
      Could you please help me to solve this issue, When I am creating the material using the transaction MM01, am receiving the error message "Express document "Update was terminated" received from author "XXXXXXXX", I checked the in SM13 found error message showing in Z_LGPLA_BIN_POSTING.
    Regards,
    Muralikrsihna.

    ST22 Error is : SAPSQL_ARRAY_INSERT_DUPREC, below is full error message
    An exception occurred. This exception is dealt with in more detail below
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
    neither
    caught nor passed along using a RAISING clause, in the procedure
    "Z_LGPLA_BIN_POSTING" "(FUNCTION)"
    Since the caller of the procedure could not have expected this exception
    to occur, the running program was terminated.
    The reason for the exception is:
    If you use an ABAP/4 Open SQL array insert to insert a record in
    the database and that record already exists with the same key,
    this results in a termination.
    (With an ABAP/4 Open SQL single record insert in the same error
    situation, processing does not terminate, but SY-SUBRC is set to 4.)
    Regards,
    Muralikrishna

  • Error message during call transaction

    Hi all,
    I want to get the message type after calling the transaction method. I've simulated an input for error, and I expect that the returned message type should be 'E' or 'W'. But it (SY-MSGTY and msgtab-MSGTYP) still returns 'S' even there is error. What's wrong ?
    Call transaction 'VL02N' USING BTAB MODE 'N' UPDATE 'S'.
    messages into msgtab.

    CALL TRANSACTION tcode USING bdcdata
                       MODE   ctumode
                       UPDATE cupdate
                       MESSAGES INTO messtab.
    LOOP AT messtab.
        msgtype = messtab-msgtyp.
    Check what the actual tranaction is giving as message for eg. mm01 does give u a sucess message saying data for the matnr is already maintained.

  • How to trigger IDoc CLFMAS after saving in transaction MM01 OR MM02

    HI,
    whenevr a characterististic for a material is created or changed in transaction MM01/MM02 , idoc clfmas should be triggerred with the characteristic values.
    whenevr we save in transaction mm02, a user exit EXIT_SAPLMGMU_001 will be called from where v need to trigger the idocs.
    Can anybody suggest me how do i trigger the idoc from the user exit
    Its urgent
    thanks ,
    loveena

    Hi,
    You can use any of the FMs in the user exit as per your requirment direct or SMD to trigger the idoc   
    CLA1_CREATE_CLFMAS           
    CLA1_CREATE_CLFMAS_DIRECT    
    IDOC_INPUT_CLFMAS            
    MASTERIDOC_CREATE_CLFMAS     
    MASTERIDOC_CREATE_CLFMAS_BY_OB
    MASTERIDOC_CREATE_REQ_CLFMAS 
    MASTERIDOC_CREATE_SMD_CLFMAS 
    Regards.

Maybe you are looking for

  • How to populate automatically in a when-new-record-instance trigger?

    I have a form which displays around ten rows with about 5 columns. Whenever i will create a new record, i would like to place an initial value on the first column of every record. How do I do this? If I place the value in the properties of the item,

  • ITunes Lagging after replacing the Hard Drive

    Hi Everyone - A recent purchase of a MacBook Pro 2.5 GHz Non-Glossy (12 days ago). Replacement of the HD from Hitatchi to Samsung 'Ultra Quiet' (my Hitatchi was making funky noises) Now when I open iTunes (or even Quicktime) to play music, there are

  • Opening an application in a new window

    Hi, I have an ordinary java class, which has access to request and response objects. From here, I need to open a third party application in a new window. Please let me know how I can do this. Thanks,

  • BSP error when clicking on line item in SUS :Buffer table not up to date

    Hi Experts, I'm having a problem in SUS Portal. When i click on a line item of a PO to display the actual line item or see more details, i get a buffer table out of date error. I saw a thread with a similar issue where it says problem resolved but ha

  • Ticket created on ECC does not show on SM7.0

    On ECC PROD, select help->create support message, fill up info and save, a support message is created. Because we have an SM7.0 based CHARM configured for above ECC landscape. The ticket created above should show up at that SM7.0 in txn crm_dno_monit