Das Geheimnis gelüftet: Wie MATDOC und MATDOC_EXTRACT in SAP S/4HANA wirklich zusammenspielen
Eine Tiefenanalyse der Tabellenverknüpfung im New Simplified Data Model für optimale Materialwirtschaft.
In der Welt von SAP S/4HANA hat das New Simplified Data Model (NSDM) die Art und Weise, wie Materialbelegdaten gespeichert und verarbeitet werden, revolutioniert. Zwei Schlüsselkomponenten dieses Modells sind die Tabellen MATDOC und MATDOC_EXTRACT. Zu verstehen, wie diese Tabellen miteinander "verknüpft" sind, ist entscheidend für eine effiziente Datenanalyse und Berichterstattung in der Materialwirtschaft. Es handelt sich hierbei weniger um eine klassische Datenbankverknüpfung als vielmehr um eine intelligent konzipierte Symbiose zur Leistungsoptimierung.
Schlüsselerkenntnisse auf einen Blick
MATDOCist die zentrale Wahrheit: Diese Tabelle konsolidiert Materialbelegkopf- (früherMKPF) und Positionsdaten (früherMSEG) und dient als primäre Quelle für alle Materialbewegungsdetails.MATDOC_EXTRACTals Performance-Booster: Sie ist eine aggregierte und komprimierte Ableitung vonMATDOC, konzipiert zur Beschleunigung von Bestandsberechnungen und Analysen, insbesondere für "On-the-fly"-Aggregationen.- Verknüpfung durch Datenfluss und CDS-Views: Die "Verbindung" basiert auf synchroner Datenbeschickung und der Nutzung gemeinsamer Schlüsselfelder, primär orchestriert durch Core Data Services (CDS)-Views, anstatt direkter, manueller Joins in den meisten Anwendungsszenarien.
Die Rollen im Detail: MATDOC und MATDOC_EXTRACT
Um die Verknüpfung zu verstehen, muss man zuerst die spezifischen Aufgaben und Eigenschaften jeder Tabelle im NSDM kennen.
MATDOC: Das Herzstück der Materialbelege
Die Tabelle MATDOC ist die fundamentale Neuerung im S/4HANA-Datenmodell für die Materialwirtschaft. Sie ersetzt die historisch getrennten Tabellen MKPF (Materialbelegkopf) und MSEG (Materialbelegposition) und führt deren Informationen in einer einzigen, umfassenden Tabelle zusammen. Dies reduziert Datenredundanz und vereinfacht den Datenzugriff erheblich.
Hauptmerkmale von MATDOC:
- Einzelquelle der Wahrheit (Single Source of Truth): Enthält alle transaktionalen Daten zu Materialbewegungen, inklusive Kopf- und Positionsdetails.
- Hohe Granularität: Speichert detaillierte Informationen zu jeder einzelnen Materialbewegung.
- Basis für Echtzeit-Analysen: Ermöglicht durch die HANA In-Memory-Datenbank schnelle Auswertungen direkt auf den Transaktionsdaten.
- Universelle Journal-Analogie: Ähnlich dem Universal Journal (
ACDOCA) im Finanzwesen, bietetMATDOCeine vereinheitlichte Sicht auf Materialbelege.
Schematische Darstellung des vereinfachten Datenmodells in SAP S/4HANA, das Tabellen wie MATDOC umfasst.
MATDOC_EXTRACT: Der Beschleuniger für Bestandsanalysen
MATDOC_EXTRACT ist keine unabhängige Tabelle im traditionellen Sinne, sondern eine speziell optimierte, kondensierte Version von Daten aus MATDOC. Ihre Hauptaufgabe ist die dramatische Verbesserung der Performance bei der Berechnung und Analyse von Lagerbeständen, insbesondere für historische Auswertungen und On-the-fly-Aggregationen.
Hauptmerkmale von MATDOC_EXTRACT:
- Aggregierte Daten: Enthält eine verdichtete Form der Daten aus
MATDOC. - Performance-Optimierung: Dient zur schnellen Berechnung von Bestandskennzahlen, ohne die gesamte
MATDOC-Tabelle durchsuchen zu müssen. - Synchrone Befüllung: Datensätze werden in der Regel zeitgleich mit
MATDOCauch inMATDOC_EXTRACTgeschrieben. - Periodische Komprimierung: Die Daten in
MATDOC_EXTRACTwerden periodisch weiter komprimiert (z.B. durch TransaktionMMPVoder ReportNSDM_MTDCSA_PRECOMP), um nur die für die Bestandsberechnung notwendigen Informationen vorzuhalten. - Kompatibilität: Dient als Basis für Kompatibilitätssichten (z.B. für die alte Tabelle
MARDH), um älteren Programmen und Berichten den Zugriff auf historische Bestandsdaten zu ermöglichen.
Die "Verknüpfung": Eine Frage der Architektur und des Datenflusses
Die Beziehung zwischen MATDOC und MATDOC_EXTRACT ist weniger eine explizite Verknüpfung über Fremdschlüssel im klassischen relationalen Sinn, sondern vielmehr eine integrierte funktionale Abhängigkeit und ein optimierter Datenfluss. Ziel ist es, die Detailtiefe von MATDOC mit der Abfragegeschwindigkeit von MATDOC_EXTRACT zu verbinden.
Mechanismen der Interaktion und logischen Verbindung
Mehrere Mechanismen stellen sicher, dass diese beiden Tabellen harmonisch zusammenarbeiten:
1. Simultane Datenverbuchung
Wenn ein Materialbeleg gebucht wird (z.B. über Transaktionen wie MIGO), schreibt das S/4HANA-System die Daten nicht nur in die MATDOC-Tabelle, sondern parallel dazu auch die relevanten Informationen in MATDOC_EXTRACT. Dies stellt eine grundlegende Synchronität sicher.
2. Gemeinsame Schlüsselfelder und GUIDs
Obwohl MATDOC_EXTRACT aggregierte Daten enthält, basieren diese auf den ursprünglichen Belegen in MATDOC. Daher teilen sie logisch verbundene Schlüsselfelder wie:
- Materialnummer (
MATNR) - Werk (
WERKS) - Lagerort (
LGORT) - Buchungsdatum (
BUDAT) - Materialbelegnummer (
MBLNR) und Position (ZEILE) für die Nachvollziehbarkeit.
In einigen Kontexten können auch Globally Unique Identifiers (GUIDs) eine Rolle bei der Verknüpfung spezifischer Datensätze spielen, insbesondere bei der internen Verarbeitung und in CDS-Views.
3. Core Data Services (CDS)-Views
Der primäre und von SAP empfohlene Weg, um auf die kombinierten Informationen aus MATDOC und MATDOC_EXTRACT zuzugreifen und diese logisch zu "verknüpfen", ist über CDS-Views. Diese Views sind im Grunde virtuelle Datenmodelle, die auf der HANA-Datenbankebene definiert werden. Sie kapseln die Komplexität der Datenbeschaffung und können Joins oder Assoziationen zwischen den Tabellen (und anderen Tabellen) effizient abbilden. Viele Standard-Fiori-Apps und Analysewerkzeuge in S/4HANA nutzen solche CDS-Views, um performant auf Bestands- und Bewegungsdaten zuzugreifen.
4. Vorkompaktierungs- und Aggregationsprozesse
MATDOC_EXTRACT wird durch systeminterne Prozesse, wie den Periodenabschluss (z.B. mit Transaktion MMPV) oder den dedizierten Report NSDM_MTDCSA_PRECOMP, regelmäßig vorkompaktiert. Dieser Prozess verdichtet die Daten in MATDOC_EXTRACT weiter, um die für die schnelle Bestandsermittlung relevanten Informationen optimal aufzubereiten. Dies ist ein integraler Bestandteil, wie MATDOC_EXTRACT als performante Datenquelle für aggregierte Bestandsinformationen dient, die letztlich aus MATDOC stammen.
Konzeptioneller SQL-Join (für Verständnis)
Obwohl CDS-Views die bevorzugte Methode sind, könnte ein konzeptioneller SQL-Join zur Veranschaulichung der Verbindung über gemeinsame Felder wie folgt aussehen. In der Praxis würde man dies jedoch selten direkt auf den Roh-Tabellen für analytische Zwecke ausführen, sondern auf optimierten CDS-Views aufsetzen:
SELECT
matdoc.MBLNR,
matdoc.MJAHR,
matdoc.ZEILE,
matdoc.BWART,
matdoc.MATNR,
matdoc.WERKS,
matdoc.LGORT,
matdoc.MENGE,
matdoc_extract.STOCK_QTY -- Beispielhaftes Feld aus MATDOC_EXTRACT
FROM
MATDOC AS matdoc
INNER JOIN -- Oder LEFT JOIN, je nach Anforderung
MATDOC_EXTRACT AS matdoc_extract
ON
matdoc.MATNR = matdoc_extract.MATNR
AND matdoc.WERKS = matdoc_extract.WERKS
AND matdoc.LGORT = matdoc_extract.LGORT
AND matdoc.BUDAT = matdoc_extract.POSTING_DATE -- Feldnamen können variieren
-- Weitere Join-Bedingungen je nach Granularität und Logik der MATDOC_EXTRACT
WHERE
-- Entsprechende Filterkriterien
...
Wichtig: Dieses SQL-Beispiel dient nur dem konzeptionellen Verständnis. Direkte Joins auf diesen potenziell sehr großen Tabellen sollten vermieden werden; stattdessen sind die von SAP bereitgestellten oder benutzerdefinierten CDS-Views zu verwenden.
Vergleichsradar: MATDOC vs. MATDOC_EXTRACT
Die folgende Grafik visualisiert die unterschiedlichen Charakteristika und Stärken der beiden Tabellen im Vergleich. Dies verdeutlicht, warum beide Tabellen im NSDM existieren und wie sie sich ergänzen.
Diese Grafik zeigt, dass MATDOC eine hohe Datengranularität und ein entsprechend hohes Datenvolumen aufweist und primär für operative Details genutzt wird. MATDOC_EXTRACT hingegen glänzt bei der Performance von Aggregatabfragen und historischen Analysen, bei geringerer Granularität und optimiertem Volumen.
Visuelle Darstellung der Beziehungen im NSDM
Die folgende Mindmap illustriert die Schlüsselkonzepte und Beziehungen rund um MATDOC, MATDOC_EXTRACT und deren Zusammenspiel im New Simplified Data Model von SAP S/4HANA.
(MATNR, WERKS, LGORT, BUDAT etc.)"] id3_3["Nutzung von GUIDs"] id3_4["Primär über CDS-Views orchestriert"] id3_5["Logische Abhängigkeit, nicht klassischer DB-Join als Hauptzugriff"] id4["Ziele & Vorteile"] id4_1["Schnelle 'On-the-fly' Bestandsberechnung"] id4_2["Reduzierte Datenredundanz (vs. ECC)"] id4_3["Verbesserte Analysefähigkeiten"] id4_4["Unterstützung für Echtzeit-Inventarmanagement"]
Diese Mindmap verdeutlicht, dass MATDOC die detaillierte Datengrundlage liefert, während MATDOC_EXTRACT als eine optimierte Schicht für performante Aggregationen dient. Die "Verknüpfung" ist ein Zusammenspiel aus synchroner Datenhaltung, gemeinsamen Attributen und der Abstraktion durch CDS-Views.
Praktische Anwendung und Datenmigration
Bei der Migration von einem SAP ECC-System nach SAP S/4HANA werden die Daten aus den alten Tabellen MKPF und MSEG in die neue MATDOC-Tabelle überführt. Parallel dazu wird MATDOC_EXTRACT entsprechend gefüllt. Dies stellt sicher, dass das neue Datenmodell von Beginn an performant arbeitet.
Entwickler und Berater, die mit diesen Tabellen arbeiten, sollten sich stark auf die Verwendung von Standard- und benutzerdefinierten CDS-Views konzentrieren, anstatt direkte SQL-Joins auf den Basistabellen zu implementieren. Dies gewährleistet nicht nur eine bessere Performance, sondern auch Zukunftssicherheit, da SAP Optimierungen und Änderungen primär auf der Ebene der CDS-Views vornimmt.
Dieses Video erläutert das Konzept von MATDOC und MATDOC_EXTRACT in SAP S/4HANA und bietet zusätzlichen Kontext zu deren Rollen und Zusammenspiel.
Zusammenfassende Tabelle: MATDOC vs. MATDOC_EXTRACT
Die folgende Tabelle stellt die wichtigsten Unterschiede und Gemeinsamkeiten der beiden Tabellen gegenüber:
| Aspekt | MATDOC | MATDOC_EXTRACT |
|---|---|---|
| Primäre Funktion | Speicherung aller Materialbelegdetails (Kopf & Position) | Beschleunigung der Bestandsberechnung und -analyse |
| Dateninhalt | Vollständige, granulare Bewegungsdaten | Aggregierte, kondensierte Bewegungsdaten |
| Herkunft der Daten | Direkte Buchung von Materialbewegungen | Abgeleitet und synchronisiert aus MATDOC |
| Datenvolumen | Sehr hoch | Reduziert (durch Aggregation und Komprimierung) |
| Hauptnutzen | Detaillierte Nachverfolgung, operative Berichte | Schnelle "On-the-fly" Aggregation, historische Bestandsanalysen, Performance |
| Ersetzt (aus ECC) | MKPF, MSEG und diverse Aggregattabellen | Teile der Funktionalität von alten Aggregattabellen und Indextabellen (z.B. MARDH über Kompatibilitätssicht) |
| Zugriffsmethode (empfohlen) | Über CDS-Views | Über CDS-Views, oft implizit durch analytische Anwendungen |
| Update-Mechanismus | Bei jeder Materialbewegung | Simultan mit MATDOC + periodische Vorkompaktierung |
Häufig gestellte Fragen (FAQ)
Empfohlene Weiterführende Suchanfragen
- Wie funktionieren CDS-Views für MATDOC und MATDOC_EXTRACT in SAP S/4HANA?
- Details zum NSDM_MTDCSA_PRECOMP Report in SAP S/4HANA.
- Best Practices für das Reporting auf Materialbestände in SAP S/4HANA.
- Unterschiede in der Bestandsführung zwischen SAP ECC und SAP S/4HANA MATDOC.
Referenzen
Last updated May 20, 2025