Skip to content

MARC — Plant-Level Material Master Data

One row per material/plant combination; extends MARA with MRP settings, safety stock, and plant-specific status.

Purpose

MARC is created when a material is "extended" to a plant in MM01/MM02. It holds all planning-relevant attributes: MRP type and controller, reorder point, safety stock, production storage location, and the plant-specific material status that can block procurement or production. Every MARC row has a parent row in MARA.

Key fields

Field Type Description
MANDT CLNT(3) Client
MATNR CHAR(18) Material number
WERKS CHAR(4) Plant
DISKZ CHAR(2) MRP type (e.g. PD=MRP VB=reorder-point ND=no planning)
DISPO CHAR(3) MRP controller / planner group
MINBE QUAN Reorder point quantity
EISBE QUAN Safety stock quantity
LGPRO CHAR(4) Production storage location
MMSTA CHAR(2) Plant-specific material status (blank = active)

Common queries

All materials extended to a given plant

SELECT matnr, diskz, dispo, mmsta
  INTO TABLE @DATA(lt_plant_mats)
  FROM marc
  WHERE mandt = @sy-mandt
    AND werks = @lv_werks.

Materials with a safety stock greater than zero

SELECT matnr, werks, eisbe, minbe
  INTO TABLE @DATA(lt_safety_stock)
  FROM marc
  WHERE mandt = @sy-mandt
    AND werks = @lv_werks
    AND eisbe > 0
  ORDER BY eisbe DESCENDING.

All materials managed by a specific MRP controller

SELECT matnr, werks, diskz, minbe, eisbe
  INTO TABLE @DATA(lt_by_dispo)
  FROM marc
  WHERE mandt = @sy-mandt
    AND dispo = @lv_dispo.

Joins

Join target Key fields Purpose
MARA MATNR General material attributes (type, group, UoM)
MARD MATNR + WERKS + LGORT Unrestricted, quality, and blocked stock per storage location
T001W WERKS Plant name and address
" Materials with description, plant name, and safety stock
SELECT c~matnr, c~werks, c~eisbe,
       a~matkl, a~meins,
       t~maktx,
       p~name1 AS plant_name
  INTO TABLE @DATA(lt_overview)
  FROM marc AS c
  INNER JOIN mara AS a ON a~mandt = c~mandt
                       AND a~matnr = c~matnr
  INNER JOIN makt AS t ON t~mandt = c~mandt
                       AND t~matnr = c~matnr
                       AND t~spras = @sy-langu
  INNER JOIN t001w AS p ON p~mandt = c~mandt
                        AND p~werks = c~werks
  WHERE c~mandt = @sy-mandt
    AND c~werks = @lv_werks
    AND c~eisbe > 0.

Pitfalls

A material in MARA may have no MARC rows

If a material has never been extended to any plant it exists only in MARA. An INNER JOIN from MARA to MARC will silently exclude those materials. Use a LEFT OUTER JOIN when you need to report on all materials regardless of plant extension.

Always specify WERKS

Without a plant filter, MARC returns rows for every plant the material has been extended to. This is rarely what you want and can produce unexpected duplicates downstream.

MMSTA can block business transactions

A non-blank MMSTA value may restrict procurement, sales, or production for that material at that plant. Check this field before drawing conclusions from MRP data.

See also

  • mara.md — General material master (parent table)
  • vbak-vbap.md — Sales orders (VBAP carries WERKS per line item)

Comments