MARA, MARC ve MARD Arasındaki Fark Nedir? SAP Malzeme Tabloları Rehberi
SAP MM ile çalışan veri analistlerinin en çok karıştırdığı konulardan biri MARA, MARC ve MARD tablolarının hangi seviyede veri tuttuğudur.
Üç tablo da malzeme ile ilgilidir; ancak aynı şeyi temsil etmez.
Kısa özet:
MARA— Malzemenin genel bilgileriMARC— Malzemenin plant bazındaki bilgileriMARD— Malzemenin depo yeri bazındaki stok bilgileri
Asıl fark, veri seviyesidir.
MARA nedir?
MARA, malzeme ana verisinin genel seviyesindeki bilgileri içerir.
Bir malzeme şirket içerisinde birden fazla plant’ta kullanılsa bile genel özellikleri MARA tarafında tutulur.
Sık karşılaşılan alanlardan bazıları:
MATNR— Malzeme numarasıMTART— Malzeme türüMATKL— Malzeme grubuMEINS— Temel ölçü birimi
Basit olarak:
MARA = Malzeme seviyesi
Örneğin 100001 numaralı bir malzemenin genel tanımı bir kez bulunabilir.
MARC nedir?
MARC, malzemenin plant bazındaki bilgilerini içerir.
Aynı malzeme birden fazla üretim yerinde kullanılabilir ve her plant için farklı planlama veya operasyon özelliklerine sahip olabilir.
MARC’ın temel anahtar mantığı:
MATNR + WERKS
Yani aynı malzeme farklı plant’larda birden fazla MARC kaydına sahip olabilir.
Örneğin:
Malzeme 100001 + Plant 1000
Malzeme 100001 + Plant 2000
Malzeme 100001 + Plant 3000
Bu durumda MARA tarafında malzeme bir genel kayıtla temsil edilirken MARC tarafında üç plant kaydı bulunabilir.
MARD nedir?
MARD, malzemenin depo yeri yani storage location seviyesindeki bilgilerini içerir.
Temel grain:
MATNR + WERKS + LGORT
Burada:
MATNR— MalzemeWERKS— PlantLGORT— Depo yeri
olarak düşünülebilir.
Aynı malzeme aynı plant içinde birden fazla depo yerinde bulunabilir.
Örneğin:
100001 | Plant 1000 | Depo 0001
100001 | Plant 1000 | Depo 0002
100001 | Plant 1000 | Depo 0003
Bu nedenle MARD, MARC’a göre daha detaylı bir veri seviyesine sahiptir.
Üç tablo arasındaki temel fark
En kolay yaklaşım veri seviyesini düşünmektir:
MARA
Malzeme
|
v
MARC
Malzeme + Plant
|
v
MARD
Malzeme + Plant + Depo Yeri
Bu hiyerarşi BI modelleme açısından kritik öneme sahiptir.
Örnek senaryo
Bir şirketin HAMMADDE-01 isimli malzemesi olduğunu düşünelim.
Malzeme iki fabrikada kullanılıyor:
- İstanbul Plant 1000
- Ankara Plant 2000
İstanbul plant içerisinde ise iki depo yeri bulunuyor:
- 0001 Hammadde Deposu
- 0002 Kalite Deposu
Bu durumda veri mantığı yaklaşık olarak şöyle görünür:
MARA
HAMMADDE-01
MARC
HAMMADDE-01 | 1000
HAMMADDE-01 | 2000
MARD
HAMMADDE-01 | 1000 | 0001
HAMMADDE-01 | 1000 | 0002
HAMMADDE-01 | 2000 | 0001
Bu örnek üç tablonun neden ayrı tutulduğunu açık biçimde gösterir.
MARA ve MARC nasıl bağlanır?
Temel ilişki malzeme numarası üzerinden kurulur:
MARA.MATNR = MARC.MATNR
Ancak MARC’ta aynı malzeme birden fazla plant kaydına sahip olabileceği için join sonrası MARA satırı çoğalabilir.
Bu normaldir; çünkü veri artık plant seviyesine inmiştir.
MARC ve MARD nasıl bağlanır?
MARD, hem malzeme hem de plant bilgisini taşır.
Bu nedenle ilişki genellikle:
MARC.MATNR = MARD.MATNR
AND
MARC.WERKS = MARD.WERKS
mantığıyla kurulur.
Sadece MATNR üzerinden join yapılırsa farklı plant’lardaki depo kayıtları yanlış eşleşebilir.
Bu, BI projelerinde ciddi veri çoğalmasına yol açabilecek tipik bir hatadır.
Örnek SQL JOIN
Basitleştirilmiş bir sorgu şöyle olabilir:
SELECT
a.MATNR AS MATERIAL_NO,
a.MTART AS MATERIAL_TYPE,
a.MATKL AS MATERIAL_GROUP,
p.WERKS AS PLANT,
s.LGORT AS STORAGE_LOCATION,
s.LABST AS UNRESTRICTED_STOCK
FROM MARA a
INNER JOIN MARC p
ON a.MATNR = p.MATNR
LEFT JOIN MARD s
ON p.MATNR = s.MATNR
AND p.WERKS = s.WERKS;
Bu sorgu malzeme genel verisini plant ve depo yeri seviyesine kadar açar.
Gerçek sistemlerde kullanılacak alanlar ve stok ölçüleri SAP sürümüne ve iş ihtiyacına göre ayrıca değerlendirilmelidir.
BI tarafında grain neden önemlidir?
Bir tabloyu anlamanın en önemli yollarından biri şu soruyu sormaktır:
Bu tablodaki bir satır neyi temsil ediyor?
MARA için cevap:
Bir malzeme.
MARC için:
Bir malzemenin bir plant’taki kaydı.
MARD için:
Bir malzemenin bir plant içindeki bir depo yerindeki kaydı.
Bu grain farkı bilinmeden oluşturulan join’ler raporda satır çoğalmasına ve yanlış toplamlara neden olabilir.
Hangi tablo hangi raporda kullanılır?
Malzeme ana veri raporu
Genellikle MARA başlangıç noktasıdır.
Örneğin:
- Malzeme türü dağılımı
- Malzeme grubu analizi
- Aktif malzeme listesi
Plant bazlı malzeme analizi
MARC öne çıkar.
Örneğin:
- Hangi plant hangi malzemeleri kullanıyor?
- Malzeme hangi üretim yerlerinde tanımlı?
- Plant bazında planlama bilgileri
Depo ve stok analizi
MARD önemlidir.
Örneğin:
- Depo yeri bazında stok
- Malzemenin hangi depolarda bulunduğu
- Plant ve storage location karşılaştırmaları
MM01 ile bu tabloların ilişkisi
SAP’te MM01 ile malzeme oluştururken kullanıcı farklı görünümleri ve organizasyon seviyelerini seçer.
Bu nedenle ekranda tek bir malzeme oluşturuyor gibi görünseniz de arka planda veri farklı organizasyon seviyelerinde tutulabilir.
Bu yapı SAP ana veri modelinin temel prensiplerinden biridir.
MMBE ve MB52 ile ilişkisi
Stok görüntüleme ekranlarında kullanıcı plant ve depo yeri detaylarını görebilir.
Bu nedenle MARD gibi storage location seviyesindeki tablolar, stok raporlarının veri modelini anlamada önemlidir.
Ancak SAP stok verisi yalnızca tek bir tablodan ibaret değildir. Raporun amacı ve SAP sürümü doğrultusunda farklı stok ve hareket tabloları da değerlendirilmelidir.
En sık yapılan 3 hata
MARAileMARCaynı seviyedeymiş gibi davranmak.MARCileMARDjoin ederken yalnızcaMATNRkullanmak.- Depo yeri seviyesindeki stokları plant seviyesine çıkarmadan önce grain kontrolü yapmamak.
Bu hatalar özellikle büyük SAP veri setlerinde toplamların katlanmasına neden olabilir.
Sonuç
MARA, MARC ve MARD arasındaki farkı tek cümlede şöyle özetleyebiliriz:
MARA = Malzeme
MARC = Malzeme + Plant
MARD = Malzeme + Plant + Depo Yeri
SAP verisini SQL, Qlik Sense, Power BI veya veri ambarında doğru modellemek için bu veri seviyelerini bilmek temel gerekliliktir.
Daha geniş süreç için SAP MM Modülü: Malzeme Yönetimi Süreçleri ve İş Akışı Rehberi içeriğini inceleyebilirsiniz.
SAP ekranlarını deneyerek öğrenmek için DataPlaybook SAP uygulama ortamına geçebilirsiniz.