Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BDC

Former Member
0 Likes
549

Hi folks,

Can anybody send me a code of BDC for Material Master.

Thanks in advance

Ravi

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
513

Hi RAVI,

I can advice you to record BDC as Per your requirement using SHDB. Because CODE provided by some one may be for some other scenario and your scenario may be different.

Here are the steps u can follow to Write BDC.

You can record USING SHDB.

Then U can create ITAB u will use for BDC

and then call a transaction...

Hope this will help u.

If u want further help... then pl. keep in touch.

DARSHAN.

5 REPLIES 5
Read only

Former Member
0 Likes
514

Hi RAVI,

I can advice you to record BDC as Per your requirement using SHDB. Because CODE provided by some one may be for some other scenario and your scenario may be different.

Here are the steps u can follow to Write BDC.

You can record USING SHDB.

Then U can create ITAB u will use for BDC

and then call a transaction...

Hope this will help u.

If u want further help... then pl. keep in touch.

DARSHAN.

Read only

Former Member
0 Likes
513

Hi,

BAPI_MATERIAL_SAVEDATA instead of BDC.

For example code ..

<b>Example how Views are dealt in BDC</b>

<u><i>u can find the view using the function module

MATERIAL_BTCI_SELECTION_NEW</i></u>

report ZBDC_SEMIFIN
       no standard page heading line-size 255.

include bdcrecx1.

Tables: Mara,"General Material Data
        mard,"Storage Location Data for Material
        mvke,"Sales Data for Material
        Makt,"Material Descriptions
        marc,"Plant Data for Material
        mbew,"Material Valuation
        rlgrap."Program Fields/Screen Fields for SAPLGRAP

Data: begin of ITAB occurs 0,"Internal table for Semi-Finished Material

*  Initial data
      matnr like mara-matnr,  "Material Code
      mbrsh like mara-mbrsh,  "Industry Data
      mtart like mara-mtart,  "Material Type

*  Org Data
      Werks like marc-werks,  "Plant
      lgort like mard-lgort,  "Storage Location
      vkorg like mvke-vkorg,  "Sales Orgnization
      vtweg like mvke-vtweg,  "Distribution Chanel

*  Basic 1
      Maktx Like makt-maktx,  "Description
      meins like mara-meins,  "Uom
      matkl like mara-matkl,  "Material Group
      BISMT LIKE MARA-BISMT, " Old Material Number
      spart like mara-spart,  "Division
      brgew(7),"like mara-brgew,  "Gross Weight
      gewei like MARA-GEWEI,  "Weight Unit
      ntgew(7)," like mara-ntgew,  "Net Weight

* Purchasing
       MAKTL LIKE MARA-MATKL, "Material Group
       ekwsl like MARA-EKWSL, " Purchasing Value Key
       ekgrp like MARC-EKGRP, " Purchasing Group

*  Mrp 1
      disgr like MARC-DISGR,  "Mrp Group
*     ekgrp like MARC-EKGRP,  "Purchasing group
      dismm like MARC-DISMM,  "Mrp Type
      dispo like MARC-DISPO,  "Mrp Controller
      disls like MARC-DISLS,  "Lot Size 
      BSTMI like MARC-BSTMI,
      BSTMA like MARC-BSTMA,
      BSTRF like MARC-BSTRF,
      BSTFE like MARC-BSTFE,


*  Mrp 2
      beskz like MARC-BESKZ,  "Procurement type
      lgpro like MARC-LGPRO,  "Production Storage Location
      dzeit(3),"like MARC-DZEIT,  "In house Production time
      plifz(3),"like MARC-PLIFZ,  "Planned delivery time
      fhori(3),"like MARC-FHORI,  "Sched margin key
      eisbe like MARC-EISBE,  "Safety stock


*  Mrp 3
      PERKZ LIKE MARC-PERKZ,
      vrmod like MARC-VRMOD,  "Consumption mode
      vint1(3)," like MARC-VINT1,  "Backward Consumption period
      vint2(3),"like MARC-VINT2,  "Forward Consumption period
      mtvfp like MARC-MTVFP,  "Availability Check

*  Mrp 4
      sbdkz like MARC-SBDKZ,  "Individual/ Collective
      SAUFT like MARC-SAUFT,  "Repetitive Manufacturing
      SFEPR like MARC-SFEPR,  "REM Profile

*  Work Scheduling View
      ausme like MARC-AUSME,  "Unit of issue
      FEVOR LIKE MARC-FEVOR, "Production Scheduler
      SFCPF like MARC-SFCPF, "Production Scheduler Profile
      umren(5)," like RMMZU-UMREN,  "Val for base uom
      umrez(5) ,"like RMMZU-UMREz,  "Value for uo issue

* Accounting 1
      bklas like MBEW-BKLAS,  "Valuation Class
      vprsv like MBEW-VPRSV,  "Price Control Indicator
      verpr(7)," like MBEW-VERPR,  "Value/Price
      STPRS like MBEW-STPRS,

*COSTING
     EKALR LIKE MBEW-EKALR," With qty str
     LOSGR like MARC-LOSGR, " Costing Lot size
    end of ITAB.

**********************************************************
Data: W_record type  I,  "Record Allready exists.
      w_trecord type I. "Total record processed

start-of-selection.
perform upload.        "Upload Data from Text File

Perform Open_group.    "Create a session

clear : w_record,w_trecord.
perform semi. "Create Semi Finish Materials

if w_trecord gt 0 or w_record gt 0.
  perform batch_job.
endif.

perform close_group.   "Close session

FORM SEMI.
loop at ITAB.
*   Check for material in master  *************************
      select single * from mara where matnr eq ITAB-matnr.
         if sy-subrc ne 0.
          w_trecord = w_trecord + 1.


*Initial Screen
perform bdc_dynpro      using 'SAPLMGMM' '0060'.
perform bdc_field       using 'BDC_CURSOR'
                              'RMMG1-MTART'.
perform bdc_field       using 'BDC_OKCODE'
                              '=AUSW'.
perform bdc_field       using 'RMMG1-MATNR'
                              ITAB-MATNR.
perform bdc_field       using 'RMMG1-MBRSH'
                              'M'.
perform bdc_field       using 'RMMG1-MTART'
                              'HALB'.
***********************Views**********************************
*Select Views
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(09)'
                              '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(17)'
                              'X'.
***********************Views**********************************

*perform bdc_dynpro      using 'SAPLMGMM' '0070'.
*perform bdc_field       using 'BDC_CURSOR'
*                              'MSICHTAUSW-DYTXT(01)'.
*perform bdc_field       using 'BDC_OKCODE'
*                              '/00'.
*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(17)'
*                              ITAB-KZSEL_17_011.
*perform bdc_dynpro      using 'SAPLMGMM' '0070'.
*perform bdc_field       using 'BDC_CURSOR'
*                              'MSICHTAUSW-DYTXT(01)'.
*perform bdc_field       using 'BDC_OKCODE'
*                              '/00'.
*perform bdc_dynpro      using 'SAPLMGMM' '0070'.
*perform bdc_field       using 'BDC_CURSOR'
*                              'MSICHTAUSW-DYTXT(13)'.
*perform bdc_field       using 'BDC_OKCODE'
*                              '=ENTR'.
*perform bdc_field       using 'MSICHTAUSW-KZSEL(13)'
*                              ITAB-KZSEL_13_012.

*Org Data
perform bdc_dynpro      using 'SAPLMGMM' '0080'.
perform bdc_field       using 'BDC_CURSOR'
                              'RMMG1-LGORT'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_field       using 'RMMG1-WERKS'
                              ITAB-WERKS.
perform bdc_field       using 'RMMG1-LGORT'
                              ITAB-LGORT.

*Basic 1
perform bdc_dynpro      using 'SAPLMGMM' '4004'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP09'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MARA-MATKL'
                              ITAB-MATKL.
perform bdc_field       using 'MARA-BISMT'
                              ITAB-BISMT.
perform bdc_field       using 'MARA-SPART'
                              ITAB-SPART.
perform bdc_field       using 'MARA-MTPOS_MARA'
                              'NORM'.
perform bdc_field       using 'BDC_CURSOR'
                              'MARA-NTGEW'.
perform bdc_field       using 'MARA-BRGEW'
                              ITAB-BRGEW.
perform bdc_field       using 'MARA-GEWEI'
                              ITAB-GEWEI.
perform bdc_field       using 'MARA-NTGEW'
                              ITAB-NTGEW.

*Purchasing
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP12'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MARC-EKGRP'
                              ITAB-EKGRP.
perform bdc_field       using 'MARA-MATKL'
                              ITAB-MATKL.
perform bdc_field       using 'BDC_CURSOR'
                              'MARA-EKWSL'.
perform bdc_field       using 'MARA-EKWSL'
                              ITAB-EKWSL.


*MRP 1
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP13'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MARC-EKGRP'
                              ITAB-EKGRP.
perform bdc_field       using 'MARC-DISMM'
                              ITAB-DISMM.
perform bdc_field       using 'MARC-DISPO'
                              ITAB-DISPO.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-DISLS'.
perform bdc_field       using 'MARC-DISLS'
                              ITAB-DISLS.
IF ITAB-DISLS EQ 'EX'   .
perform bdc_field       using 'MARC-BSTMI'
                              ITAB-BSTMI."MIN LOT SIZE
perform bdc_field       using 'MARC-BSTMA'
                              ITAB-BSTMA."MAX LOT SIZE
perform bdc_field       using 'MARC-BSTRF'
                              ITAB-BSTRF."RNDING
ELSEIF ITAB-DISLS EQ 'FX'.
perform bdc_field       using 'MARC-BSTFE'
                              ITAB-BSTFE.
ENDIF.

*MRP 2
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP14'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARC-BESKZ'
                              ITAB-BESKZ.
perform bdc_field       using 'MARC-LGPRO'
                              ITAB-LGPRO.
perform bdc_field       using 'MARC-DZEIT'
                              ITAB-DZEIT.
perform bdc_field       using 'MARC-PLIFZ'
                              ITAB-PLIFZ.
perform bdc_field       using 'MARC-FHORI'
                              ITAB-FHORI.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-EISBE'.
perform bdc_field       using 'MARC-EISBE'
                              ITAB-EISBE.

*MRP 3
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP15'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARC-PERKZ'
                              ITAB-PERKZ.
perform bdc_field       using 'MARC-VRMOD'
                              ITAB-VRMOD.
perform bdc_field       using 'MARC-VINT1'
                              ITAB-VINT1.
perform bdc_field       using 'MARC-VINT2'
                              ITAB-VINT2.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-MTVFP'.
perform bdc_field       using 'MARC-MTVFP'
                              ITAB-MTVFP.

*MRP 4
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP17'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARC-SBDKZ'
                              ITAB-SBDKZ.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-SFEPR'.
perform bdc_field       using 'MARC-SAUFT'
                              ITAB-SAUFT.
perform bdc_field       using 'MARC-SFEPR'
                              ITAB-SFEPR.


*Work Scheduling
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP24'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-SFCPF'.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MARC-FEVOR'
                              ITAB-FEVOR.
perform bdc_field       using 'MARC-LGPRO'
                              ITAB-LGPRO.
perform bdc_field       using 'MARC-SFCPF'
                              ITAB-SFCPF.
perform bdc_field       using 'MARC-DZEIT'
                              ITAB-DZEIT.

*Check for Conversation Factor
          if ITAB-MEINS ne iTAB-ausme and iTAB-umren gt  0
                                      and iTAB-umrez gt  0.

          perform bdc_dynpro      using 'SAPLMGMM' '0510'.
          perform bdc_field       using:
                                  'BDC_OKCODE'    '=ENTR',
                                  'RMMZU-UMREN'   ITAB-UMREN,
                                  'RMMZU-UMREZ'   ITAB-UMREZ.
        endif.
perform bdc_field       using 'MARC-LGPRO'
                              itab-LGPRO.
perform bdc_field       using 'MARC-DZEIT'
                              itab-DZEIT.

*Accounting
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SP26'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MARA-SPART'
                              ITAB-SPART.
perform bdc_field       using 'BDC_CURSOR'
                              'MBEW-STPRS'.
perform bdc_field       using 'MBEW-BKLAS'
                              ITAB-BKLAS.
perform bdc_field       using 'MBEW-VPRSV'
                              ITAB-VPRSV.
perform bdc_field       using 'MBEW-STPRS'
                              ITAB-STPRS.
IF ITAB-VPRSV = 'S'.
perform bdc_field       using 'MBEW-STPRS' "FILLS STD PRICE
                              ITAB-VERPR.
ELSEIF ITAB-VPRSV ='V'.
perform bdc_field       using 'MBEW-VERPR' "FILLS VALUE
                              ITAB-VERPR.
ENDIF.


*Cost Estimate
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BU'.
perform bdc_field       using 'MAKT-MAKTX'
                              ITAB-MAKTX.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-PRCTR'.
perform bdc_field       using 'MARA-MEINS'
                              ITAB-MEINS.
perform bdc_field       using 'MBEW-EKALR'
                              ITAB-EKALR.
perform bdc_field       using 'MARC-LOSGR'
                              ITAB-LOSGR.
perform bdc_transaction using 'MM01'.

REFRESH BDCDATA.

*  *************************************************************
    else.
         w_record = w_record + 1.
    endif.

ENDLOOP.
ENDFORM.

form Upload.

CALL FUNCTION 'UPLOAD'
 EXPORTING
   CODEPAGE                      = ' '
   FILENAME                      = ' '
   FILETYPE                      = ' '
  TABLES
    DATA_TAB                      = ITAB
 EXCEPTIONS
   CONVERSION_ERROR              = 1
   INVALID_TABLE_WIDTH           = 2
   INVALID_TYPE                  = 3
   NO_BATCH                      = 4
   UNKNOWN_ERROR                 = 5
   GUI_REFUSE_FILETRANSFER       = 6
   OTHERS                        = 7.
ENDFORM.

form batch_job.
    uline.
      format color col_heading.

        if w_trecord gt 0.
        Write:/ 'Background Job has been Created for ',
              w_trecord right-justified, 'Semi-Fin', 80 ''.
        write:/ 'Please follow the following steps to run this job',
                                                           80 ''.

        write:/ 'as listed below.', 80 ''.
        format color col_normal.
        skip.
        write:/05 '1.Goto Transaction SM35', 80 ''.
        write:/05 '2.Select your Session Name', 80 ''.
        write:/05 '3.Click On Execute Button', 80 ''.
       endif.
       if w_record gt 0.
         format color col_negative.
         write:/ w_record ,'records already existed', 80 ''.
         format color off.
       endif.
    uline.
endform.

Read only

Former Member
0 Likes
513

Hi Ravi,

BDC for Material Master is a bit tricky because of the Views that each material has, is dynamic in nature.

It is better to use a BAPI instead.

Use BAPI_MATERIAL_SAVEDATA. Search the forum with the search string as the bapi nam, for the sample code.

Regards,

Ravi

Read only

Former Member
0 Likes
513

Hi,

Thanks 2 all for quick response. I need a flat file for the data. How can i get a flat file for material master so that i can upload material master. I am learning abap so plz help me in that how can i create a flat file for material master.

Thanks

Ravi

Read only

Former Member
0 Likes
513