Material Master extended to a wrong combination of Plant and Warehouse

I actually came through something unusual today. I was able to extend the material to extend a material to a plant and warehouse which doesnt have a link between them. I checked it out in the configuration that there was no link between the two. Then how did the material got extended to the wrong combination. The system should have put a hard stop for it.
Can anyone put a light on it.
Thanks
-Mike

What do you mean by link between material and plant?

Similar Messages

  • Wrong combination of Plant and Co code at the time of PO creation

    Dear all,
    At the time of creating PO when I am entering Plant and Company code system is not giving any error message if I am entering other Co code , i.e. Co code which is not assigned to the plant. I want an error message in case of maintaining wrong combination of plant and Co code.
    Any suggestion ??
    Reward assured for helpful answer.
    Thx and regds
    Amitava

    Go to SPRO - MM - Purchasing - Environment Data - Define Attributes of System Messages - System Messages
    Then maintain system messages 00 06 167 and then set as E (error) in category field.
    Reward if useful

  • IDOC: Material master (Extend Plants)

    I used LSMW IDOC option to migrate material master data (MATMAS):
    - Basic views
    - Description
    - Costing
    - Plant Stock
    I want to extend the plant view (Plant Stock). What change do I do to original LSMW to extend plant?
    How do I specify that I am extending?
    Is it that function code at the beginning of IDOC?

    You can do this by writing a program:
    REPORT  zdmmm_mm_multiplant NO STANDARD PAGE HEADING
            MESSAGE-ID zdmmm
            LINE-SIZE 255.
                    TABLE DECLARATION                                   *
    TABLES: mara,          "General Material Data
            mard,          "Storage location data
            mdma,          "MRP data for material
            marc.          "Plant Data for Material
    include zdmmmr_dev00160_mm_multi_top.
    include zdmmmr_dev00160_mm_multi_f00.
                   AT SELECTION-SCREEN                                  *
    AT SELECTION-SCREEN.
      IF NOT s_matnr[] IS INITIAL.
    *Subroutine to perform the Material Number validation
        PERFORM sub_validate_matnr.
      ELSEIF p_ersda IS INITIAL.
        MESSAGE e003   .
      ENDIF.
      IF NOT s_werks[] IS INITIAL.
    Subroutine to perform the plant validation
        PERFORM sub_validate_plant.
      ENDIF.
                    START-OF-SELECTION
    START-OF-SELECTION.
    *To retrive all possible material numbers that have to be
    *extended.
      PERFORM sub_get_mara.
    *To retrieve all possible plants to which the material needs
    *to be extended.
      IF s_werks IS INITIAL.
        PERFORM sub_get_werks.
      ENDIF.
    *For retrieving Procurement status data from T134.
      PERFORM sub_get_pstat.
    *To determine the plants to which the Materials have
    *already been extended.
      PERFORM sub_get_marc.
    *To determine all Storage Locations for individual Plants.
      PERFORM sub_get_t001l.
    *To retrieve company code
      PERFORM sub_get_t001k.
    *To determine the storage locations and plants to which the Material
    *has already extended.
      PERFORM sub_get_mard.
    *To determine the MRP Areas to which the materials need to be extended.
      PERFORM sub_get_mdlv.
    *To determine the MRP Areas to which the materials already been extended.
      PERFORM sub_get_mdma.
    *To retrieve the MRP Area related data from customized table.
      PERFORM sub_get_zdmmm_mrp_area.
    *TO retrieve the Scalabilty info
      PERFORM sub_get_scalability.
    *For extending Material to Plant, all possible Storage Location and corresponding MRP Area .
      PERFORM sub_mat_extn.
    *For creating success and error log.
      PERFORM sub_create_log.
    *Text elements
    001 Material/Plant Selection
    002 No data found for given Selection.
    003 Reference material is not maintained
    004 Material is already extended to the plant
    006 Material extended for MRP Area
    007 Successfully extended
    008 Already extended
    009 Not a seviceable storage location,cannot be extended to MRP Area
    *Selection texts
    P_ERSDA         Date
    S_MATNR         Material Number
    S_WERKS         Extend to Plant
    *Messages
    Message class: ZDMMM
    *000   & & & &
    *001   The material no. does not exist
    *002   The plant does not exists.
    *003   Enter either material no. or Creation date
    *&  Include           ZDMMMR_MM_MULTI_TOP                     *
                              Types
    *Type declaration to hold material no.
    TYPES: BEGIN OF ty_matnr,
             matnr      TYPE matnr,                  "Material Number
             mtart      TYPE mtart,                  "Material Type
             ersda      TYPE ersda,                  "Creation date
             mbrsh      TYPE mbrsh,                  "Industry Sector
             vkorg      TYPE vkorg,                  "Sales Organization
             vtweg      TYPE vtweg,                  "Distribution Channel
             mtartz     TYPE zmtart,                 "Material Type (Customized)
            END OF ty_matnr.
    *Type declaration to hold plant.
    TYPES: BEGIN OF ty_plant,
             werks      TYPE werks_d,                 "Plant
             bwkey      TYPE bwkey,                   "Valuation area
           END OF ty_plant.
    *Type declaration to hold data from marc.
    TYPES: BEGIN OF ty_marc,
             matnr      TYPE matnr,                   "Material Number
             werks      TYPE werks_d,                 "Plant
             bwkey      TYPE bwkey,
           END OF ty_marc.
    *Type declaration to hold data from mard.
    TYPES: BEGIN OF ty_mard,
             matnr      TYPE matnr,                   "Material Number
             werks      TYPE werks_d,                 "Plant
             lgort      TYPE lgort_d,                 "Storage Location
             mtart      TYPE mtart,                   "Material Type
           END OF ty_mard.
    *Type declaration to hold data from t001l.
    TYPES: BEGIN OF ty_sloc,
              werks     TYPE werks_d,                 "Plant
              lgort     TYPE lgort_d,                 "Storage Location
           END OF ty_sloc.
    *Type declaration to hold data from mdlv.
    TYPES: BEGIN OF ty_mdlv,
              berid     TYPE berid,                   "MRP Area
              werzg     TYPE werks_d,                 "Plant
              ortzg     TYPE lgort_d,                 "Storage Location
           END OF ty_mdlv.
    *Type declaration to hold data from custom table ZDMMM_MRP_AREA.
    TYPES: BEGIN OF ty_refmdma,
               zmtart    TYPE zdmmm_mrp_area-zmtart,   "Material Type (Customized)
               zwerks    TYPE zdmmm_mrp_area-zwerks,   "Plant
               zberid    TYPE zdmmm_mrp_area-zberid,   "MRP Area
               zdismm    TYPE zdmmm_mrp_area-zdismm,   "MRP Type
               zeisbe    TYPE zdmmm_mrp_area-zeisbe,   "Safety Stock
               zdisls    TYPE zdmmm_mrp_area-zdisls,   "Lot Size
               zdispo    TYPE zdmmm_mrp_area-zdispo,   "MRP Controller
               zfxhor    TYPE zdmmm_mrp_area-zfxhor,   "Plant Delivery Time (In days)
           END OF ty_refmdma.
    *Type declaration to hold data for success log.
    TYPES: BEGIN OF ty_succ,
               mat(18)   TYPE c,                        "Material
               plant(8) TYPE c,                        "Plant
               sloc(15)  TYPE c,                        "Storage Location
               comm(150) TYPE c,                        "Comments
            END OF ty_succ.
    *Type declaration to hold data for error log.
    TYPES: BEGIN OF ty_error,
              mat(18)   TYPE c,                         "Material
              plant(8) TYPE c,                         "Plant
              sloc(15)  TYPE c,                         "Storage Location
              comm(150) TYPE c,                         "Comments
            END OF ty_error.
    *Type declaration for holding data from mvke
    TYPES: BEGIN OF ty_mvke,
             matnr      TYPE matnr,                       "Material Number
             vkorg      TYPE vkorg,                       "Sales Org
             vtweg      TYPE vtweg,                       "Distribution Channel
           END OF ty_mvke.
    *Type declaration for holding data from qmat
    TYPES: BEGIN OF ty_qmat,
                   matnr type matnr,
                   werks type werks_d,
                   art TYPE qmat-art,
                   ppl TYPE qmat-ppl,
                   spezueber TYPE qmat-spezueber,
                   conf TYPE qmat-conf,
                   tls TYPE qmat-tls,
                   app TYPE qmat-app,
                   mer TYPE qmat-mer,
                   insmk TYPE qmat-insmk,
                   ave TYPE qmat-ave,
                   stichprver TYPE qmat-stichprver,
                   dynregel TYPE qmat-dynregel,
                   sproz TYPE qmat-sproz,
                   hpz TYPE qmat-hpz,
                   dyn TYPE qmat-dyn,
                   mpb TYPE qmat-mpb,
                   mst TYPE qmat-mst,
                   ein TYPE qmat-ein,
                   mpdau TYPE qmat-mpdau,
                   chg TYPE qmat-chg,
                   qkzverf TYPE qmat-qkzverf,
                   qpmat TYPE qmat-qpmat,
                   kzprfkost TYPE qmat-kzprfkost,
                   aufnr_co TYPE qmat-aufnr_co,
                   aktiv TYPE qmat-aktiv,
                   apa TYPE qmat-apa,
                   afr TYPE qmat-afr,
                   mma TYPE qmat-mma,
                   feh TYPE qmat-feh,
                   prfrq TYPE qmat-prfrq,
                   nkmpr TYPE qmat-nkmpr,
         END OF ty_qmat.
    *Type declaration for MARA and MARC data for reference material
    TYPES: BEGIN OF ty_ref_data,
             matnr      TYPE matnr,                       "Material Number
             ladgr      TYPE ladgr,                       "Loading Group
             bklas      TYPE bklas,                       "Valuation class
             peinh      TYPE peinh,                       "Price unit
             losgr      TYPE losgr,                       "Costing Lot Size
             hkmat      TYPE hkmat,                       "Material Origin
             herkl      TYPE herkl,                       "Country Of Origin
             dismm      TYPE dismm,                       "MRP Type
             dispo      TYPE dispo,                       "MRP Controller
             fxhor      TYPE fxhor,                       "Planned delivery time (In days)
             disls      TYPE disls,                       "Lot size
             fhori      TYPE fhori,                       "Scheduling Margin Key for Floats
             magrv      TYPE magrv,
             vhart      TYPE vhart,
             ergew      TYPE ergew,
             ervol      TYPE ervol,
             fuelg      TYPE fuelg,
             stfak      TYPE stfak,
             gewto      TYPE gewto,
             volto      TYPE volto,
             prctr      TYPE prctr,
             kzgvh      TYPE kzgvh,
             stawn      TYPE stawn,
             mtver      TYPE mtver,
             casnr      TYPE casnr,
             gpnum      TYPE gpnum,
             steuc      TYPE steuc,
             herkr      TYPE herkr,
             mownr      TYPE mownr,
             mogru      TYPE mogru,
             prenc      TYPE prenc,
             preno      TYPE preno,
             prend      TYPE prend,
             itark      TYPE itark,
             bstme      TYPE bstme,
             vabme      TYPE vabme,
             nrfhg      TYPE nrfhg,
             mfrgr      TYPE mfrgr,
             ekwsl      TYPE ekwsl,
             webaz      TYPE webaz,
             insmk      TYPE insmk,
             kzkri      TYPE kzkri,
             usequ      TYPE usequ,
             kordb      TYPE kordb,
             mprof      TYPE mprof,
             ekgrp      TYPE ekgrp,
             disgr      TYPE disgr,
             maabc      TYPE maabc,
             minbe      TYPE minbe,
             lfrhy      TYPE lfrhy,
             bstmi      TYPE bstmi,
             bstma      TYPE bstma,
             bstfe      TYPE bstfe,
             mabst      TYPE mabst,
             losfx      TYPE losfx,
             lagpr      TYPE lagpr,
             ausss      TYPE ausss,
             takzt      TYPE takzt,
             rdprf      TYPE rdprf,
             bstrf      TYPE bstrf,
             megru      TYPE megru,
             sobsl      TYPE sobsl,
             kzech      TYPE kzech,
             lgpro      TYPE lgpro,
             vspvb      TYPE vspvb,
             rgekz      TYPE rgekz,
             lgfsb      TYPE lgfsb,
             fabkz      TYPE fabkz,
             eprio      TYPE eprio,
             schgt      TYPE schgt,
             plifz      TYPE plifz,
             mrppp      TYPE mrppp,
             eisbe      TYPE eisbe,
             lgrad      TYPE lgrad,
             eislo      TYPE eislo,
             rwpro      TYPE rwpro,
             shflg      TYPE shflg,
             shzet      TYPE shzet,
             shpro      TYPE shpro,
             periv      TYPE periv,
             auftl      TYPE auftl,
             strgr      TYPE strgr,
             vrmod      TYPE vrmod,
             vint2      TYPE vint2,
             umref      TYPE umref,
             prgrp      TYPE prgrp,
             vint1      TYPE vint1,
             miskz      TYPE miskz,
             prwrk      TYPE prwrk,
             mtvfp      TYPE mtvfp,
             wzeit      TYPE wzeit,
             kzpsp      TYPE kzpsp,
             stdpd      TYPE stdpd,
             perkz      TYPE perkz,
             altsl      TYPE altsl,
             kausf      TYPE kausf,
             sbdkz      TYPE sbdkz,
             kzbed      TYPE kzbed,
             ahdis      TYPE ahdis,
             kzaus      TYPE kzaus,
             ausdt      TYPE ausdt,
             nfmat      TYPE nfmat,
             sauft      TYPE sauft,
             sfepr      TYPE sfepr,
             mdach      TYPE mdach,
             dplfs      TYPE dplfs,
             dplpu      TYPE dplpu,
             dplho      TYPE dplho,
             tempb      TYPE tempb,
             raube      TYPE raube,
             behvo      TYPE behvo,
             stoff      TYPE stoff,
             abcin      TYPE abcin,
             ccfix      TYPE ccfix,
             wesch      TYPE wesch,
             etiar      TYPE etiar,
             etifo      TYPE etifo,
             xgchp      TYPE xgchp,
             maxlz      TYPE maxlz,
             lzeih      TYPE lzeih,
             mhdrz      TYPE mhdrz,
             mhdhb      TYPE mhdhb,
             iprkz      TYPE dattp,
             rdmhd      TYPE rdmhd,
             mhdlp      TYPE mhdlp,
             brgew      TYPE brgew,
             ntgew      TYPE ntgew,
             volum      TYPE volum,
             voleh      TYPE voleh,
             groes      TYPE groes,
             xmcng      TYPE xmcng,
             loggr      TYPE loggr,
             sernp      TYPE serail,
             serlv      TYPE serlv,
             fprfm      TYPE fprfm,
             ausme      TYPE ausme,
             qmata      TYPE qmatauth,
             kzdkz      TYPE kzdkz,
             prfrq      TYPE prfrq,
             rbnrm      TYPE rbnr,
             qmpur      TYPE qmpur,
             ssqss      TYPE ssqss,
             qzgtp      TYPE qzgtyp,
             qssys      TYPE qssys,
             bwtty      TYPE bwtty,
             eklas      TYPE eklas,
             qklas      TYPE qklas,
             verpr      TYPE verpr,
             stprs      TYPE stprs,
             zkprs      TYPE dzkprs,
             zkdat      TYPE dzkdat,
             bwprs      TYPE bwprs,
             bwprh      TYPE bwprh,
             bwps1      TYPE bwps1,
             bwph1      TYPE bwph1,
             vjbws      TYPE vjbws,
             vjbwh      TYPE vjbwh,
             abwkz      TYPE abwkz,
             bwpei      TYPE bwpei,
             xlifo      TYPE xlifo,
             mypol      TYPE mypool,
             ncost      TYPE ck_no_costing,
             ekalr      TYPE ck_ekalrel,
             hrkft      TYPE hrkft,
             kosgr      TYPE ck_kosgr,
             awsls      TYPE awsls,
             mmsta      TYPE mmsta,
             mmstd      TYPE mmstd,
             stlal      TYPE stlal,
             stlan      TYPE stlan,
             plnnr      TYPE plnnr,
             aplal      TYPE plnal,
             plnty      TYPE plnty,
             sobsk      TYPE ck_sobsl,
             zplpr      TYPE dzplpr,
             zplp1      TYPE dzplp1,
             zpld1      TYPE dzpld1,
             zplp2      TYPE dzplp2,
             zpld2      TYPE dzpld2,
             zplp3      TYPE dzplp3,
             zpld3      TYPE dzpld3,
             lvolg      TYPE lvolg,
             diskz      TYPE diskz,
             lsobs      TYPE lsobs,
             lminb      TYPE lminb,
             lbstf      TYPE lbstf,
             lgpbe      TYPE lgpbe,
          END OF ty_ref_data.
    *Type declaration for holding data from mdma
    TYPES: BEGIN OF ty_mdma,
            matnr       TYPE mdma-matnr,                   "Material Number
            berid       TYPE mdma-berid,                   "MRP Area
            werks       TYPE mdma-werks,                   "Plant
          END OF ty_mdma.
    *Type declaration for holding Company code data
    TYPES: BEGIN OF ty_bukrs,
            bwkey       TYPE bwkey,                         "Valuation Area
            bukrs       TYPE bukrs,                         "Company code
          END OF ty_bukrs.
    *Type declaration for holding T001w Data
    TYPES: BEGIN OF ty_t001w,
            werks       TYPE werks_d,                       "Plant
            bwkey       TYPE bwkey,                         "Valuation Area
          END OF ty_t001w.
    *Type declaration for holding T134 Data
    TYPES: BEGIN OF ty_t134,
            mtart       TYPE mtart,                         " Material type
            pstat       TYPE pstat,                         "Condensed status display
          END OF ty_t134.
    Type declaration for Holding TWLAD data
    TYPES: BEGIN OF ty_twlad,
             werks    TYPE werks_d,
             lgort    TYPE lgort_d,
             adrnr    TYPE adrnr,
            END OF ty_twlad.
    *Type declaration for holding ADRC data
    TYPES: BEGIN OF ty_adrc,
             adrnr    TYPE adrnr,   "Address number
             sort2    TYPE ad_sort2,   "Search Term
           END OF ty_adrc.
    TYPES: BEGIN OF ty_dev00160,
             pkey    TYPE zkey,    "parameter key
             item    TYPE zitem,   "Item No
             value   TYPE zvalue,
           END OF ty_dev00160.
                             Constants
    CONSTANTS: c_header(1) TYPE c  VALUE 'H',     "Header
               c_true(1)   TYPE c  VALUE 'X',     "value = x
               c_v(1)      TYPE c  VALUE 'V',     "Sales View
               c_e(1)      TYPE c  VALUE 'E',     "Purchasing View
               c_d(1)      TYPE c  VALUE 'D',     "MRP View
               c_p(1)      TYPE c  VALUE 'P',     "Forecasting View
               c_a(1)      TYPE c  VALUE 'A',     "Work Scheduling view
               c_l(1)      TYPE c  VALUE 'L',     "Storage View
               c_q(1)      TYPE c  VALUE 'Q',     "Quality View
               c_b(1)      TYPE c  VALUE 'B',     "Accounting
               c_g(1)      TYPE c  VALUE 'G',     "Costing View
               c_f(1)      TYPE c  VALUE 'F',     "PRT View
               c_k(1)      TYPE c  VALUE 'K'.     "Basic View
                              Internal tables
    *Internal table to hold material no and material type
    DATA: i_matnr  TYPE STANDARD TABLE OF ty_matnr INITIAL SIZE 0.
    *Internal table to hold plant
    DATA: i_plant   TYPE STANDARD TABLE OF ty_plant INITIAL SIZE 0.
    *Internal table to hold marc data
    DATA: i_marc   TYPE STANDARD TABLE OF ty_marc INITIAL SIZE 0.
    *Internal table to hold marc data
    DATA: i_tmarc   TYPE STANDARD TABLE OF ty_marc INITIAL SIZE 0.
    *Internal table to hold mard data
    DATA: i_mard   TYPE STANDARD TABLE OF ty_mard INITIAL SIZE 0.
    *Internal table to hold t001l data
    DATA: i_sloc TYPE STANDARD TABLE OF ty_sloc INITIAL SIZE 0.
    *Internal table to hold MRP Area
    DATA: i_mdlv  TYPE STANDARD TABLE OF ty_mdlv INITIAL SIZE 0.
    *Internal table to hold already extended MRP Area
    DATA: i_mdma  TYPE STANDARD TABLE OF ty_mdma INITIAL SIZE 0.
    *Internal table to hold MRP Area data from customized table
    DATA: i_refmdma TYPE STANDARD TABLE OF ty_refmdma INITIAL SIZE 0.
    *Internal table to hold success messages
    DATA: i_succ TYPE STANDARD TABLE OF ty_succ INITIAL SIZE 0.
    *Internal table to hold error messages
    DATA: i_error TYPE STANDARD TABLE OF ty_error INITIAL SIZE 0.
    *Internal table to hold mvke data
    DATA: i_mvke   TYPE STANDARD TABLE OF ty_mvke INITIAL SIZE 0.
    *Internal table for company code data
    DATA: i_bukrs TYPE STANDARD TABLE OF ty_bukrs INITIAL SIZE 0.
    *Internal table for T001W data
    DATA: i_t001w TYPE STANDARD TABLE OF ty_t001w INITIAL SIZE 0.
    *Internal table for T134 data
    DATA: i_t134 TYPE STANDARD TABLE OF ty_t134 INITIAL SIZE 0.
    *Internal table for TWLAD data
    DATA: i_twlad  TYPE STANDARD TABLE OF ty_twlad INITIAL SIZE 0.
    *Internal table for ADRC data
    DATA: i_adrc  TYPE STANDARD TABLE OF ty_adrc INITIAL SIZE 0.
    *Internal table for dev00160 data
    DATA: i_dev00160  TYPE STANDARD TABLE OF ty_dev00160 INITIAL SIZE 0.
    *Internal table for qmat data
    DATA: i_qmat  TYPE STANDARD TABLE OF ty_qmat INITIAL SIZE 0.
                              Work areas
    *Work Area for Internal table i_mara
    DATA: wa_matnr     TYPE ty_matnr.
    *Work Area for Internal table i_werks
    DATA: wa_plant     TYPE ty_plant.
    *Work Area for Internal table i_marc
    DATA: wa_marc      TYPE ty_marc.
    *Work Area for Internal table i_t001l
    DATA: wa_sloc      TYPE ty_sloc.
    *Work Area for Internal table i_mdlv
    DATA: wa_mdlv      TYPE ty_mdlv.
    *Work Area for Internal table i_bukrs
    DATA: wa_bukrs     TYPE ty_bukrs.
    *Work Area for Internal table i_refmdma.
    DATA: wa_refmdma   TYPE ty_refmdma.
    *Work Area for Internal table i_succ
    DATA: wa_succ      TYPE ty_succ.
    *Work Area for Internal table i_error
    DATA: wa_error     TYPE ty_error.
    *Work Area for Internal table i_selfields
    DATA: wa_selfields TYPE sdibe_massfields.
    *Work Area for Internal table i_mvke
    DATA: wa_mvke      TYPE ty_mvke.
    *Work Area for Internal table i_ref_data
    DATA: wa_ref_data  TYPE ty_ref_data.
    *Work Area for internal table I_t001w
    DATA: wa_t001w    TYPE ty_t001w.
    *Work Area for internal table I_t001w
    DATA: wa_twlad    TYPE ty_twlad.
    *Work Area for internal table I_t134
    DATA: wa_t134    TYPE ty_t134.
    WOrk Area for ADRC Table
    DATA: wa_adrc    TYPE ty_adrc.
    WOrk Area for MARD Table
    DATA: wa_mard    TYPE ty_mard.
    *Work Area for Internal table i_mvke
    DATA: wa_dev00160      TYPE ty_dev00160.
    *Work Area for Internal table i_mvke
    DATA: wa_qmat      TYPE ty_qmat.
                    SELECTION SCREEN                                    *
    SELECTION-SCREEN : BEGIN OF BLOCK b_001
                       WITH FRAME
                       TITLE text-001 .         "Start of selection-screen
    SELECT-OPTIONS:     s_matnr FOR mara-matnr.            "Material Number
    PARAMETERS :        p_ersda LIKE mara-ersda.           "Creation Data
    SELECT-OPTIONS:     s_werks FOR marc-werks NO INTERVALS.       "Plant
    SELECTION-SCREEN : END OF BLOCK b_001 .   "End of Selection-screen
    *&  Include           ZDMMMR_MM_MULTI_F00                     *
    *&      Form  sub_validate_matnr
          Subroutine for validating material number
    FORM sub_validate_matnr .
      SELECT matnr            "Material Number
             mtart            "Material Type
             ersda            "Creation date
             mbrsh            "Industry Sector
      FROM mara               "Table for General Material Data
      INTO TABLE i_matnr
      WHERE matnr IN s_matnr.
    *If no material is found an error message is given
      IF sy-subrc <> 0.
        MESSAGE e001.
      ENDIF.
    ENDFORM.                    " sub_validate_matnr
    *&      Form  sub_validate_plant
          Subroutine to validate Plant
    FORM sub_validate_plant .
      SELECT werks            "Plant
             bwkey            "Valuation area
      FROM t001w              "Table for Plants/Branches
      INTO TABLE i_plant
      WHERE werks IN s_werks.
    *If no plant is found an error message is given
      IF sy-subrc NE 0.
        MESSAGE e002.
      ENDIF.
    ENDFORM.                    " sub_validate_plant
    *&      Form  sub_get_mara
    *Determine all the materials that need to be extended to new plants,
    *storage locations and MRP areas
    FORM sub_get_mara .
      IF NOT s_matnr[] IS INITIAL.
        SORT i_matnr BY matnr.
        IF p_ersda IS NOT INITIAL.
          DELETE i_matnr WHERE ersda NE p_ersda.
        ENDIF.
      ELSE.
    *If only Creation Date is given
        SELECT    matnr              "Material No.
                  mtart              "Material Type
                  ersda              "Creation date
                  mbrsh              "Industry Sector
        FROM mara                    "Table for General Material Data
        INTO  TABLE i_matnr
        WHERE ersda EQ p_ersda.
        IF sy-subrc EQ 0.
          SORT i_matnr BY matnr.
        ELSE.
          MESSAGE i000 WITH 'No data found for given Selection.'(002).
          LEAVE LIST-PROCESSING.
        ENDIF.
      ENDIF.
    Subroutine to get data from mvke.
      PERFORM sub_get_mvke.
      LOOP AT i_matnr INTO wa_matnr.
        CLEAR wa_mvke.
        READ TABLE i_mvke INTO wa_mvke WITH KEY matnr = wa_matnr-matnr
    BINARY SEARCH.
        IF sy-subrc EQ 0.
          wa_matnr-vkorg = wa_mvke-vkorg.
          wa_matnr-vtweg = wa_mvke-vtweg.
        ENDIF.
        IF wa_matnr-mtart = 'AD01'.
          wa_matnr-mtartz = 'AD01'.
        ELSE.
          wa_matnr-mtartz = 'NAD01'.
        ENDIF.
        MODIFY i_matnr FROM wa_matnr TRANSPORTING vkorg vtweg mtartz.
      ENDLOOP.
    ENDFORM.                    " sub_get_mara
    *&      Form  sub_get_werks
    *Determine all the plants to which the Materials need to be extended
    FORM sub_get_werks .
      SELECT   werks            "Plant
               bwkey            "Valuation Area
      FROM t001w                "Check table for Plants/Branches
      INTO  TABLE i_plant.
      IF sy-subrc EQ 0.
        SORT i_plant BY werks.
      ENDIF.
    ENDFORM.                    " sub_get_werks
    *&      Form  sub_get_marc
    *Determine the status of the materials with respect to which plants
    *they have already been extended to
    FORM sub_get_marc .
      CHECK i_matnr[] IS NOT INITIAL.
      SELECT     m~matnr        "Material Number
                 m~werks        "Plant
                 t~bwkey
      INTO TABLE i_marc
      FROM marc AS m               "Table for Plant Data for Material
      INNER JOIN t001w AS t
      ON mwerks = twerks
      FOR ALL ENTRIES IN i_matnr
      WHERE matnr EQ i_matnr-matnr.
      IF sy-subrc EQ 0.
    *Append the plants that have been extended to
    to the list of plants to which they have to be extended
    only when no plants are given in the selection screen
        IF s_werks IS INITIAL.
          LOOP AT i_marc INTO wa_marc.
            wa_plant-werks = wa_marc-werks.
            wa_plant-bwkey = wa_marc-bwkey.
            APPEND wa_plant TO i_plant.
            CLEAR wa_plant.
          ENDLOOP.
          SORT i_plant BY werks bwkey.
          DELETE ADJACENT DUPLICATES FROM i_plant
          COMPARING werks bwkey.
        ENDIF.
        SORT i_marc BY matnr werks.
    *Retrieve the Valutaion Area for the plants to which the material
    *has already been extended.
        SELECT werks          "Plant
               bwkey          "Valuation area
        INTO TABLE i_t001w
        FROM t001w            "Table for Plants/Branches
        FOR ALL ENTRIES IN i_marc
        WHERE  werks = i_marc-werks.
    *If selection succeed.
        IF sy-subrc EQ 0.
    Sort by Plant
          SORT i_t001w BY werks.
        ENDIF.
      ENDIF.
    *Copy the content of MARC into a temporary internal table
      i_tmarc[] = i_marc[].
      DELETE ADJACENT DUPLICATES FROM i_tmarc
             COMPARING matnr.
    *Retrieving Inspection type - material parameters (QMAT)
    *data
      SELECT       matnr          "Material Number
                   werks          "Plant
                   art            "Inspection Type
                   ppl            "Inspection with Task List
                   spezueber      "Inspect with Material Specification
                   conf           "Inspection Specifications from
                                  " Configuration
                   tls            "Inspection Specifications from Batch
                                  " Determination
                   app            "Automatic Specification Assignment
                   mer            "nspect by Characteristics
                   insmk          "Post to Inspection Stock
                   ave            "Automatic Usage Decision Planned
                   stichprver     "Sampling Procedure
                   dynregel       "Dynamic Modification Rule
                   sproz          "Inspection Percentage
                   hpz            "100% Inspection
                   dyn            "Skips Allowed
                   mpb            "Enter the Sample Manually
                   mst            "Trigger Sample Calculation Manually
                   ein            "Serial Number Management Possible
                   mpdau          "Average Inspection Duration
                   chg            "Control of Inspection Lot Creation (Lot
                                  "Summary)
                   qkzverf        "Procedure for Calculating Quality Score
                   qpmat          "Allowed Share of Scrap (Percent) in
                                   "Inspection Lot
                   kzprfkost      "Record Appraisal Costs in Individual QM
                                  "Order
                   aufnr_co       "Order Number for Recording Appraisal
                                   "Costs
                   aktiv          "Inspection Type - Material Combination is
                                   "Active
                   apa            "Preferred Inspection Type
                   afr            "Inspection for Handling Unit
                   mma            "Field Not Used as of 3.0       Field
                                   "Reserved for SAP
                   feh            "Field Not Used as of 3.0       Field
                                  "Reserved for SAP
                   prfrq          "Field Not Used as of 3.0       Field
                                   "Reserved for SAP
                   nkmpr          "Field Not Used as of 3.0       Field
                                  "Reserved for SAP
          INTO TABLE i_qmat
          FROM qmat               "Table of "Inspection type - material
                                  "parameters"
          FOR ALL ENTRIES IN i_tmarc
          WHERE matnr = i_tmarc-matnr "Material no. of temporary internal
                                       "table
          AND   werks = i_tmarc-werks. "Plant of temporary internal table
    *If selection succeed
      IF sy-subrc EQ 0.
        SORT i_qmat BY matnr.
      ENDIF.
    ENDFORM.                    " sub_get_marc
    *&      Form  sub_get_mard
    Determine the storage locations for the Plants i_plant.
    FORM sub_get_mard .
      CHECK i_marc[] IS NOT INITIAL.
      SELECT matnr           "Material Number
             werks           "Plant
             lgort           "Storage Location
      FROM mard              "Table for Storage Location Data for Material
      INTO TABLE i_mard
      FOR ALL ENTRIES IN i_marc
      WHERE matnr EQ i_marc-matnr
      AND werks EQ i_marc-werks.
    *If selection succeed
      IF sy-subrc EQ 0.
    *Sort internal table by Material no , Plant and Storage Location
        SORT i_mard BY matnr werks lgort .
      ENDIF.
    ENDFORM.                    " sub_get_mard
    *&      Form  sub_get_t001l
    Determine the storage locations for the Plants i_plant.
    FORM sub_get_t001l .
      CHECK i_plant[] IS NOT INITIAL.
      SELECT     werks               "Plant
                 lgort               "Storage Location
      FROM t001l                     "Check table for Storage Location
      INTO TABLE i_sloc
      FOR ALL ENTRIES IN i_plant
      WHERE werks EQ i_plant-werks.
    *If selection succeed
      IF sy-subrc EQ 0.
    *Sort by Plant and Storage Location
        SORT i_sloc BY werks lgort.
       For all the storage location get the Storage Location Address
    *Number
        SELECT werks   "Plant
               lgort   "Storage Location
               adrnr   "Address Number
         FROM twlad    "Table of 'Determination of Address from Plant and
                       "Storage Location'
         INTO TABLE i_twlad
         FOR ALL ENTRIES IN i_sloc
         WHERE werks = i_sloc-werks
         AND   lgort = i_sloc-lgort.
    *If selection succeed
        IF sy-subrc EQ 0.
    *Sort by Plant, Storage Location and Address number
          SORT i_twlad BY werks lgort adrnr.
    For all address numbers retrieved get the search term
          SELECT addrnumber  "Address number
                 sort2       "Search Term 2
          INTO TABLE i_adrc
          FROM adrc          "Table of 'Addresses (Business Address
                             "Services)'
          FOR ALL ENTRIES IN i_twlad
          WHERE addrnumber = i_twlad-adrnr.
          IF sy-subrc EQ 0.
            SORT i_adrc BY adrnr.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    " sub_get_t001l
    *&      Form  sub_get_mdlv
    Determine the MRP Areas to which the materials need to be extended.
    FORM sub_get_mdlv .
      CHECK i_sloc[] IS NOT INITIAL.
      SELECT     berid                "MRP Area
                 werzg                "Plant
                 ortzg                "Receiving Storage Location
      FROM mdlv                       "Table for Customizing MRP Area
      INTO TABLE i_mdlv
      FOR ALL ENTRIES IN i_sloc
      WHERE werzg EQ i_sloc-werks
      AND   ortzg EQ i_sloc-lgort.
    *If selection succeed.
      IF sy-subrc EQ 0.
    *Sort by Plant and Storage Location
        SORT i_mard BY werks lgort.
      ENDIF.
    ENDFORM.                    " sub_get_mdlv
    *&      Form  sub_get_zdmmm_mrp_area
    Determine required fields w.r.t Plant and MRP Area from customized
    *table
    FORM sub_get_zdmmm_mrp_area .
      CHECK i_mdlv[] IS NOT INITIAL.
    *Retrieving MRP data from Customized table
      SELECT    zmtart                "Material Type
                zwerks                "Plant
                zberid                "MRP Area
                zdismm                "MRP Type
                zeisbe                "Safety Stock
                zdisls                "Lot Size
                zdispo                "Mrp Controller
                zfxhor                "Planned Delivery Time (In Days)
      FROM zdmmm_mrp_area             "Customized table for MRP Area wrt
                                       "plant and mat type.
      INTO TABLE i_refmdma
      FOR ALL ENTRIES IN i_mdlv
      WHERE zberid = i_mdlv-berid
      AND zwerks = i_mdlv-werzg.
    *If selection succeed
      IF sy-subrc <> 0.
    *Sort by MRP Area and Plant
        SORT i_refmdma BY zberid zwerks.
      ENDIF.
    ENDFORM.                    " sub_get_zdmmm_mrp_area
    *&      Form  sub_mat_extn
    For extending Material to Plant, all possible Storage Location and
    corresponding MRP Area .
    FORM sub_mat_extn .
    *Local variable declaration
      DATA: l_index TYPE sytabix.       "For storing sy-tabix
      DATA: l_counter TYPE i VALUE 0.   "For formatting Error log.
      DATA: l_sloc_extend TYPE c.       "Flag for Extending the material
      DATA: wa_dpop LIKE dpop.          "For sending as a exporting
      "parameter
      DATA: wa_mdma LIKE mdma.          "For sending as a exporting
      "parameter
      DATA: l_stat  TYPE c.             "For checking the Storage Location
      "is Seviceable or not.
      DATA: wa_bapireturn1 TYPE bapiret1. "Return Work area of
      "'MD_MRP_LEVEL_CREATE_DATA'
    *No material is selected.
      CHECK i_matnr[] IS NOT INITIAL.
      SORT i_plant BY werks.
      SORT i_marc BY matnr werks.
      SORT i_mard BY matnr werks lgort.
    *For extending the material to Plant Storage Location and possible MRP
    *Area
      LOOP AT i_matnr INTO wa_matnr.
        CLEAR wa_marc.
      Checking whether Reference Material  Exists or not
        READ TABLE i_marc INTO wa_marc WITH KEY matnr = wa_matnr-matnr
       BINARY SEARCH.
      If no reference material exists..populate data for error log.
        IF sy-subrc NE 0.
          CLEAR wa_error.
          PERFORM material_convert USING wa_matnr-matnr
                                   CHANGING wa_error-mat.
          wa_error-comm = 'Reference material is not maintained'(003).
          APPEND wa_error TO i_error.
          CLEAR wa_error.
          CONTINUE.
        ENDIF.
      For retrieving the reference data
        PERFORM sub_retrieve_refdata.
        LOOP AT i_plant INTO wa_plant.
          READ TABLE i_marc INTO wa_marc WITH KEY matnr = wa_matnr-matnr
                                                  werks = wa_plant-werks
                                                  BINARY SEARCH.
          IF sy-subrc EQ 0.
        

  • Material master extending to sales organization , distribution chanel ..

    Hi All,
    I have done the plant to plant Material master extending
         my query is similar way how to approach the material master extending to sales organization , distribution chanel and storage location.
      earlier in the plant to plant i have taken the selection screens
    parameters : source plant
    select option : target plant
    materials i have taken is : material type and related but i didn't take any sales org, division and storage.
    Regards...

    HI,
    you can do this through MM01 bdc select sales views and end you data.(for extanding views not in mm02, mm01 only)
    i hope it will slove your problem else please replay with quary.
    Do Reward points..if found helpful

  • When trying to connect to a projector, I pressed the wrong combination of keys and now I have voice commands and a border around all typing fields on my powerbook.

    When trying to connect to a projector, I pressed the wrong combination of keys and now I have voice commands and a border around all typing fields on my powerbook. How can I get out of this mode?

    System Preferences, Universal Access, Seeing, VoiceOver.

  • Material master extend automatically

    hi,
    mostly all the material master will be extend for two plants. how can i do it automatically
    pls advice. thanks

    call function BAPI_MATERIAL_SAVEDATA with different plants.
    example
    loop Materials
       loop Plant
    pass value to headerdata & plantdata
    call function BAPI_MATERIAL_SAVEDATA
       endloop .
    endloop.

  • Assign material master to many profit center in a plant

    hi experts!
    Now, i have a trouble.
    i am defining Profit center base of sale department. and one product can be sold by different sale depart.
    Example, Product A (belong to Plant 1) can be sold by either profit center M or Profit center N.
    So now, how to derivate accurate profit center SD posting.
    Please, help me.
    Thanks in advance.

    Hi,
    At time of sales order the profit center can be set by
    1.     CO account assignment (strongest option)
    2.     Manual entry
    3.     PCA substitution
    4.     Material / plant (weakest option)
    regards
    Waman

  • Storage Location required entry in Material Master

    Hi
    My client requirement is, at the time of creation of Material Master, System will ask for Storage Location.Without Storage Location, Icann't create Material Master.
    Even if I'll select Plant and Storage LOcation View & Warehouse View, System is not asking the storage Location.
    Can anybody suggest me where I'll set the setting so that system will ask for Storage Location mandatory in Material Master.
    Thanks & regards
    PKB

    Hi Raja,
    Thanks for your reply.Before Posting the thread, I've already checked these Views what you told.But system is not asking me to enter storage location.
    You can check in your system.
    System only asking for plant not storage location.Even if we select warehouse view, system is not asking for Storage Location view.
    Thanks & Regards
    PKB

  • Material master definition

    Sir,
    at which level,material master is defined? Can we maintain same material with two different names in two company codes of the same client?

    Shailesh,
    You can create the same material with different name....
    Please tryt o simulate it using the Tcode MM01 and give the material say : ballpen in the copy from material tab abd select all the views and the give the organizational details like to which plant you want to maintain anf from which plant/sto.loc you want to copy the material.
    Further the concept of company code is not considered for material master, as it is maintained at Client,plant and st.loc levels.
    BR,
    Krishna

  • Extending material master for different sales org/plant combination

    hi ,
    1 ) a material can be sold from one plant by many sales organisations. so we map this scenario in enterprise structure by the config step "assign sales org--dist channel--
    plant ". (let's say sales org A and B  selling from plant 1 and also sales org A selling from plant 2)
    when we have defined the above config step, then why we need to have material master extended for different combination of sales org and plant as in stpe 1 ?. we can just create one material master with one plant and sales org combination and based on config as in step one, we can sell material from any sales org from a plant  ?
    2) we can extend  material master for any combination of sales org/plant .....is it also possible to extend material master to different storage locations !
    regds
    pamela
    Edited by: Pamela79 on Feb 15, 2011 11:02 AM

    There are several reasons why you should extend the materails to different sales organizations and plants.
    a. The materials are normally valuated at the plant level. So, you can have different valuations at different plants.
    b. You can have different quantity stored in different plants. How do you know which plant has what quantity.
    c. You can have materail not to be sold from one plant, but you can have the same materail sold from the other, how do you block it? at the plant and materail combination, you can do it.
    d. For different sales organizations, you may want the cost and the price to be posted to different GL accounts. You can control it at sales org level of the materail.
    e. You may just want the material to be purchased but not sold, then you may not even create a sales org view for the material. But say, in future you will like to only purchase a materail from a plant and consume it for some other purpose but not sales (which u did previously), then you can block it at sales org and dbr level.
    So, these are a few reasons. But there could be many. You can have a look at the fields in the material master at sales org level and plant level and you can find it for yourself howmany parameters are there to control...
    Hope this helps...
    Regards,
    Mukund S

  • Extend material master in other plants

    Hi there,
    I have 5 plants, one of them (e.g. Plant P001) is the main distributor for supplying all the materials for the rest. I´m using valuation at plant level.
    When I create a new material, I do it initially in the main plant and I have to extend it to the rest of the plants.
    My doubt is, there is a way to extend the material to other plants automatically including the sales views?
    I would like to minimize the possibilities of errors for manual entry, for example, enter the average cost of the material, which have to be the same for all plants.
    Thanks in advance,
    Mairo.

    Hi
    Please find below web links for information and procedure for Legacy system migration workbench
    link:[http://www.sap-img.com/sap-data-migration.htm]
    link:[http://www.sap-basis-abap.com/sapgeneral/step-by-step-legacy-system-migration-workbench-lsmw.htm]
    link:[http://www.sapdb.info/wp-content/uploads/2008/08/lsmw.pdf]
    Hope this help
    Regards
    Vikrant

  • I want validation while creating material master with profit center

    Dear Experts,
                           I want validation while creating material master with profit center.
    If 0001 plant having 100100 profit center
       0002 plant having  200200 profit center
    Material A cant be created for 0001 plant for with wrong profit center 200200.
    Kindly help & provide me solution clearly

    Hi,
    Profit centers are assigned to controlling areas. And controlling areas can have many plants under them. So as long as both the plants and profit centers are in the same controlling area users will be able to extend the materials.
    You should put in your validation control in the material master user exit. One of the exits you can use is
    MGA00001  Material Master (Industry): Checks and Enhancements
    Thanks & regards
    Hameed Parvez

  • Valuation class of material master to be changed

    Hello,
    My master data team has insereted a wrong valuation class in the material master record. Purchase order has been raised and a GR has been done for the same. SAP gives following steps to change the valuation class:
    The valuation class cannot be changed, choose 'Display error'
    Message no. M3368
    "Diagnosis
    You wanted to change the valuation class. However, this is not possible because one or more of the following already exist for the material:
    Valuated stocks in the current period or in the previous period
    Open purchase orders or delivery schedule lines
    Production orders for which a goods movement has already taken place
    System response
    Your change is reset by the system.
    Procedure
    If valuated stocks already exist, you can change the valuation class only as follows:
    a) Post the stocks of the material to an interim account.
    b) Change the valuation class in the material master record.
    c) Post the stocks of the material back to their original account.
    If open purchase orders already exist, you can only change the valuation class if you first flag the corresponding purchase order items for deletion.
    If production orders exist for which a goods movement has already taken place, you can only change the valuation class if you first set the status of the production orders to Deleted."
    My question is how do I post the stocks to an interim account since stock accounts are configured to post automatically?
    If anyone knows how to manage the posting, please let me know.
    Thanks
    Keyur

    Hi,
    Make the movement with a movement type in MIGO  that posts to the same account in FI for all Valuation classes.
    After changing the Val. CLass then reverse the above movement.
    Kind regards

  • How to modify  industry sector of material master data

    dear all:
    i have already created a material master data using a wrong industry sector through tcode MM01.
    and i have created BOM&ROUTTING for this material.
    now ,i want to modify the  industry sector of  this  material.
    what should i do for this case?
    thank you!
    best regards!

    Hi,
    Industry sector is at client level & once you create the material you can't change the industry sector.
    However, if you have debug rights then you can change it directly in the table MARA with field MBRSH.
    Hope your query get resolved.
    Thanx

  • Material Master - Sub Classification

    Hi Friends
    My client has a problem in inventory matching. To avoid this, business wants some of their steel Materials to be sub classified according to the batch/Coil No.
    Suppose we have a material with material no. X ( Specifications HA3PO 200 X 6). This material is supplied by a vendor under different Batch/ Foil NO.
    These batch / Foil NO. are defined as per the length and width of the coil. Now the business wants to include the batch/Foil No. as sub category of the material.
    They are at present marinating the info in an excel sheet and they are facing problem in matching inventory to the SAP system. To get rid of this they need a solution.
    How do we map this and where should we do? I'm not a MM conslt, but need to help the business quickly.
    Your help will be highly appreciated.
    Thanks

    Hi,
    It is suggested to use concept of Split Valuation for this so that you will get proper tracking of Quantity as well as value of stock.
    I will explain this with an example, For e.g. valuation criteria is SUBCLASS
    Go to OMWC - Configure Split Valuation
    Here Create Valuation Category as for e.g. "SUBCLASS" and Valuation Types as "FOIL NO 1" and "FOIL NO 2"
    Here in Valuation types, you can assign the Account Category Reference
    And in OMSK - You can define 2 Valuation classes and assign these to 2 Account Category References
    Now in OBYC - Maintain Account Determination for Account Key BSX as per the valuation class
    Refer following link for detailed configuration of Split Valuation
    [Split Valuation Process|http://www.sap123.com/showthread.php?t=29]
    [Split Valuation Help|http://help.sap.com/saphelp_erp60_sp/helpdata/en/8f/d1de34e4cb2300e10000009b38f83b/frameset.htm]
    Process Flow: -
    1. Create Material Master for Asset in MM01, maintain valuation category ORIGIN in "Accounting 1" view and extend the material master for all the above 2 valuation types and input the value.
    Here in your case Valuation Types will be "FOIL NO 1" and "FOIL NO 2" and also assign the respective valuation classes.
    When you want to Purchase materials then,
    1. ME21N - Create for Material with valuation type "FOIL NO 1" or "FOIL NO 2" as per requirement, maintain it in "Delivery" Tab
    2. MIGO - GR w.r.t. PO (GR of material will be done in valuation type as per maintained in PO "FOIL NO 1" and "FOIL NO 2"
    3. MMBE - Stock Overview (Here you can see the stock as per valuation type "FOIL NO 1" and "FOIL NO 2"

Maybe you are looking for