Ask me anything
Ithy Logo
Sign in to save

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.

sap-s4hana-matdoc-matdoc-extract-linkage-rxcp28dc

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

  • MATDOC ist die zentrale Wahrheit: Diese Tabelle konsolidiert Materialbelegkopf- (früher MKPF) und Positionsdaten (früher MSEG) und dient als primäre Quelle für alle Materialbewegungsdetails.
  • MATDOC_EXTRACT als Performance-Booster: Sie ist eine aggregierte und komprimierte Ableitung von MATDOC, 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, bietet MATDOC eine vereinheitlichte Sicht auf Materialbelege.
Schematische Darstellung des vereinfachten Datenmodells in SAP S/4HANA

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 MATDOC auch in MATDOC_EXTRACT geschrieben.
  • Periodische Komprimierung: Die Daten in MATDOC_EXTRACT werden periodisch weiter komprimiert (z.B. durch Transaktion MMPV oder Report NSDM_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.

mindmap root["MATDOC & MATDOC_EXTRACT im S/4HANA NSDM"] id1["MATDOC"] id1_1["Zentrale Materialbelegtabelle"] id1_2["Ersetzt MKPF & MSEG"] id1_3["Hohe Granularität (Kopf & Position)"] id1_4["Basis für Echtzeit-Reporting"] id2["MATDOC_EXTRACT"] id2_1["Abgeleitete Aggregattabelle"] id2_2["Performance-Optimierung für Bestandsanalysen"] id2_3["Periodische Vorkompaktierung (z.B. MMPV, NSDM_MTDCSA_PRECOMP)"] id2_4["Basis für Kompatibilitätssichten (z.B. MARDH)"] id3["Verknüpfungsmechanismen"] id3_1["Simultane Datenbeschickung"] id3_2["Gemeinsame Schlüsselfelder
(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)

Muss ich MATDOC und MATDOC_EXTRACT manuell verknüpfen?

In den meisten Fällen nein. SAP S/4HANA nutzt Core Data Services (CDS)-Views, um die Daten aus beiden Tabellen logisch zu kombinieren und für Berichte und Analysen bereitzustellen. Die "Verknüpfung" ist Teil des Systemdesigns. Direkte manuelle Joins sind selten notwendig und oft nicht performant.

Wann wird MATDOC_EXTRACT aktualisiert?

MATDOC_EXTRACT wird in der Regel gleichzeitig mit MATDOC befüllt, wenn ein Materialbeleg gebucht wird. Zusätzlich gibt es Prozesse zur periodischen Vorkompaktierung (z.B. Report NSDM_MTDCSA_PRECOMP oder im Rahmen des Periodenabschlusses mit MMPV), die die Daten weiter optimieren.

Kann ich auf MATDOC_EXTRACT direkt zugreifen?

Technisch ist ein direkter Zugriff möglich (z.B. über SE16 oder in ABAP). Für analytische Zwecke oder in Anwendungen wird jedoch dringend empfohlen, die von SAP bereitgestellten CDS-Views zu nutzen. Diese bieten eine stabile und performante Schnittstelle.

Was passiert, wenn ich benutzerdefinierte Felder in MATDOC habe? Werden diese auch in MATDOC_EXTRACT berücksichtigt?

Standardmäßig werden benutzerdefinierte Felder aus MATDOC nicht automatisch in MATDOC_EXTRACT übernommen, da MATDOC_EXTRACT primär für Standard-Bestandsführungsattribute optimiert ist. Wenn benutzerdefinierte Felder für aggregierte Analysen relevant sind, die auf MATDOC_EXTRACT basieren könnten, müssten Erweiterungen oder benutzerdefinierte Logiken implementiert werden, um diese Daten zu aggregieren und verfügbar zu machen, typischerweise über benutzerdefinierte CDS-Views, die MATDOC direkt nutzen.


Empfohlene Weiterführende Suchanfragen


Referenzen

helpcenter.theobald-software.com
Table Joins - yunIO HelpCenter

Last updated May 20, 2025

AI-assisted research. Sources, methodology and corrections · Source-checked guides and tools · Explore published answers

Ask Ithy AI