Die Datenbank bildet neben der Programmlogik (ABAP) und dem GUI das Rückgrat eines SAP-Systems. Und die Datenbank besteht aus einer Massen an unterschiedlichen Tabellen, in denen jeder Beleg, jedes Stammdatum, jede Aktion akribisch abgespeichert wird. Die Kenntnis der einzelnen Tabellen und deren Zusammenhänge gehört zu den technischen Kern-Skills eines SAP-Beraters – und um es auf den Punkt zu bringen: Wenn ich ehrlich bin, ist wohl der Tabellen-Browser (SE16 oder SE16N oder SE16H) meine meist genutzte Transaktion im SAP.
Natürlich kennt man mit den Jahren eine Unmenge an gängigen und nicht so gängigen SAP-Tabellen. Die Grunddaten zum Materialstamm sind natürlich in der Tabelle MARA zu finden, die Positionsdaten zum Kundenauftrag sind in der VBAP oder die Änderungsprotokolle kann man aus den Tabellen CDHDR / CDPOS ermitteln. Doch trotz dessen sieht man in einer Transaktion, einer Liste oder einer Auswertung einen Wert, ein Feld und fragt sich, in welcher Tabelle ist dieser abgelegt. Zur Ermittlung einer konkreten Tabelle gibt es folgende drei Ansätze:
#1 Tabelle über technische Infos ermitteln
Dieser Ansatz ist die einfachste und gängigste Methode eine Tabelle zu ermitteln und funktioniert im Detail wie folgt: Beispielsweise willst du ermitteln, in welcher Tabelle die Versandbedingungen zum Kundenauftrag abgelegt sind:
# Öffne mit der Transaktion VA03 irgendeinen Kundenauftrag
# Springe über die Menüleiste in den Kopf-Versandbereich: Springen -> Kopf -> Versand
# Leg nun den Mausfokus auf das Feld Versandbedingung (einmal rein klicken)
# Jetzt einfach auf F1 drücken und anschließend auf den Button „Technische Info“ klicken
# Im nächsten Screen sieht man im Feld Tabellenname: VBAK, Tabellenart: Transparente Tabelle und darunter Feldname: VSBED, d.h. die Versandbedingungen zum Kundenauftrag sind in der Tabelle VBAK und hier im Feld VSBED zu finden.
#2 Tabelle über Verwendungsnachweis ermitteln
Bei einigen Feldern im GUI funktioniert der oben beschriebene Ansatz nicht, da hier vor der Ausgabe die Feldinhalte aus der konkreten DB-Tabelle in eine interne, temporäre Struktur gepackt werden. Ein gutes Beispiel ist hier das Feld Warenempfänger (oben im Einstiegsbild eines Kundenauftrags – VA03).
Wenn man auf dieses Feld die oben beschriebenen Schritte anwendet, dann erhält man als Tabellennamen: KUWEV und Tabellenart: Struktur und Feldname: KUNNR. Die Tabellenart Struktur kennzeichnet, dass man sich die Daten KUWEV nicht per Tabellen-Browser anschauen kann. Hier kann man aber wie folgt vorgehen, um die gesuchte Tabelle zu ermitteln:
# Aus den „Technischen Infos“ in das Feld Datenelement doppelklicken: In unserem Beispiel: KUNWE
# Hier gelangt man in die Detailansicht des Datenelements KUNWE
# Von hier aus muss man mit dem Button Verwendungsnachweis nach den Tabellen suchen, in denen das Feld/Datenelement KUNWE abgelegt ist -> also hier auf den Button mit den Pfeilen klicken (das fünfte Button in der Navigationsleiste.
# Im nächsten Screen „Verwendungsnachweis Datenelement“ nur die Auswahl „Tabellenfeldern“ aktiveren und Enter
# Jetzt bekommt man eine Liste an Tabellen angezeigt, in denen der Warenempfänger zum Kundenauftrag abgelegt ist. Als versierter SD-Berater wird man wissen, dass die Belegtabellen zum Kundenauftrag mit VB beginnen. Damit kann man sich gezielt diese Tabellen ansehen.
#3 Tabelle über SQL-Trace ermitteln
Ein anderer Ansatz um eine bestimmte Tabelle zu ermitteln ist es den SQL-Trace (Tx. ST05) zu nutzen.
Anwendungsfall: Mit der Transaktion MASS kann man für eine Reihe von Objekten (Kostenstelle, Kundenauftrag, etc.) Massenänderungen durchführen. Wenn man die Transaktionen MASS startet, kann man über das Feld Objekttyp das Objekt auswählen (F4), dass man ändern will. Ich will nun mit Hilfe des SQL-Trace die Tabelle ermitteln, in der die Texte zu den BUS-Objekte zur Massenpflege-Transaktion abgelegt sind.
#1 Zunächst musst du eine 2 SAP-GUI-Modi öffnen. Im ersten Modus startest du die Transaktion ST05 und im zweiten Modus die Transaktion MASS
#2 Jetzt startest du im ersten Modus den Trace gemäß der oberen Selektion, in dem du auf den Button „Trace einschalten“ klickst (links oben)
#3 Im nächsten Schritt gehst du in den zweiten Modus (Tx. MASS) und öffnest im Feld Objekttyp die Eingabehilfe (Matchcode – F4)
#4 Nun wieder in den ersten Modus (ST05) springen und auf den „Trace ausschalten“ Button klicken.
#5 Anschließend auf den „Trace anzeigen“ Button klicken und den nächsten Screen einfach per F8 ausführen.
#6 Jetzt kommt die Musik: Hier sind nun alle SQL-Anweisungen aufgelistet, die während des Traces aufgezeichnet wurden.
##6.1 In der Spalte Objektname sind die Tabellen aufgelistet, die durchlaufen wurden
##6.2 In der Spalte Anweisung ist die Select-Anweisung dargestellt, die genutzt wurde; durch Doppelklick ins Feld gelangt man in die Details
#7 By the way – unsere gesuchte Tabelle – Texte zu den BUS-Objekten – ist hier in der Liste die Tabelle MASSNAME
Es gab auch mal ein schönes Programm, mit der man einen bestimmten Wert in mehreren Tabellen suchen konnte: TABLE_SCANNER
Leider handelt es sich dabei um eine veraltete Transaktion, wobei das Coding noch existiert.
Leider gibt es kein Nachfolgeprogramm…
Hallo Isa, erst mal danke für die top-Seite! Wollte nur anmerken, dass das auch über die Tabelle DD03L über Se16n möglich ist.