Für alle, die Daten aus SAP-Systemen nutzen wollen, steht am Anfang die Aufgabe, die Daten im SAP-System zu finden. Das ist bei der großen Menge an Tabellen, aus der ein SAP-System besteht, nicht ganz einfach. Für ABAP-Programmierer und Business-Warehouse-Modellierer ist für diese Aufgabe das SAP-ABAP Dictionary die erste Anlaufstelle. Da das ABAP Dictionary Bestandteil der ABAP Workbench ist, ist es nur von Benutzern erreichbar, die über einen Entwicklerschlüssel verfügen.
Es gibt aber auch die Möglichkeit, an die Informationen des ABAP Dictionary zu kommen, ohne die Workbench zu nutzen. Alle Informationen zu Tabellen, Feldern und Ähnlichem sind in SAP-Systemen in den Tabellen der Form ‚DD[0-9][0-9]%’ hinterlegt. Diese sind, wie alle anderen ‚Transparenten Tabellen’ z.B. mit dem SSIS-Tool XTRACTIS der Firma Theobald extrahierbar.
Die ‚Tabellen der Tabellen’ heißen z.B. DD02L und DD02T. In DD02L sind wichtige Informationen zu SAP-Tabellen gespeichert, in Tabelle DD02T die Texte (aussagekräftige Kurzbeschreibungen) der SAP-Tabellen in verschiedenen Sprachen.
Tabellenbegriffe im SAP-Umfeld
Im Text wurde bereits unterschieden zwischen ‚Transparenten Tabellen’ und SAP-Tabellen. Es gibt in SAP verschiedene Definitionen, was eine Tabelle ist. Eine transparente Tabelle ist eine SAP-Datenbanktabelle, in der sich physisch die Daten befinden. Da die Tabelle DD02T eine transparente Tabelle ist, kann diese als Tabelle extrahiert werden und der Inhalt genutzt werden. Z. B. wird folgende SQL-Anweisung nach der Extraktion nach SQL-Server den deutschen Text für diese Tabelle zurückgeben:
Select * from DD02T where TABNAME = 'DD02T' and DDLanguage = 'D'
Ergebnis:
TABNAME DDLANGUAGE AS4LOCAL AS4VERS DDTEXT | |
——————– ———- ——– ——- ———————————- | |
DD02T D A 0000 R/3-DD: Texte zu SAP-Tabellen |
Diese Tabelle enthält also die ‚Texte zu SAP-Tabellen’. SAP-Tabellen sind dabei nicht nur ‚Transparente Tabellen’, sondern können noch viele andere Arten von Zusammenfassungen von Feldern sein, die in SAP-Systemen benötigt werden. Es kann sich also auch um eine View handeln, oder um die Felder eines Eingabeformulars, eines Reports oder die Parameter einer ABAP-Funktion. Das ist auch Grund für die riesige Anzahl Zeilen, die diese Tabelle hat.
Auch wenn beim Begriff ‚Transparente Tabelle’ dieser Eindruck entsteht, eine transparente Tabelle eines SAP-Systems entspricht NICHT genau einer entsprechenden Tabelle des zugrundeliegenden Datenbanksystems. Das macht es sehr schwierig, SAP-Daten auf Datenbank-Ebene abzufragen. Dafür ist immer ein SAP-System notwendig.
Wichtige DD-Tabellen
Folgende DD-Tabellen halten wir für die wichtigsten, um erste Recherchen vornehmen zu können:
TABNAME DDLANGUAGE AS4LOCAL AS4VERS DDTEXT | |||
——————– ———- ——– ——- ———————————– | |||
DD01L D A 0000 Domänen | |||
DD02L D A 0000 SAP-Tabellen | |||
DD02T D A 0000 R/3-DD: Texte zu SAP-Tabellen | |||
DD03L D A 0000 Tabellenfelder | |||
DD03T D A 0000 DD: Texte zu Feldern (sprachabhängig) | |||
DD04L D A 0000 Datenelemente | |||
DD04T D A 0000 R/3-DD: Texte der Datenelemente | |||
DD05M D A 0000 Schnittstellenstruktur für DD_TBFK_GET | |||
DD05Q D A 0000 Generierte Tabelle zum View DD05Q | |||
DD05S D A 0000 Fremdschlüsselfelder | |||
DD08L D A 0000 R/3-DD: Beziehungsdefinitionen | |||
DD08T D A 0000 Texte zu den Beziehungsdefinitionen | |||
Außer bei der SAP-Tabelle DD05M handelt es sich hier um transparente Tabellen. In DD05Q sind z.B. Beziehungen zwischen Tabellen beschrieben, die hilfreich sind, um weitere Tabellen zu einem bestimmten Themenbereich zu finden.
DD05M ist eine View, welche auch Texte zu Feldern zurückgibt. Zu Feldern sind in SAP keine Texte gespeichert. Felder werden inhaltlich zusammengefasst zu Rollen. So sind z. B. sicher alle Felder BUKRS in tausenden von SAP-Tabellen von der Rolle BUKRS, weil alle inhaltlich das gleiche enthalten: den Buchungskreis. Texte zu Feldern sind genaugenommen Texte zu Rollen.
Da diese Texte zu den Feldern wichtig sind, haben wir die View in SAP (mit Entwicklerschlüssel, Transaktion SE54) angeschaut und in SQL Server nachgebaut:
Select fl.TABNAME, fl.FIELDNAME, fl.ROLLNAME, dt.DDTEXT, fl.CHECKTABLE, fl.DOMNAME, ml.ENTITYTAB from DD03L fl join DD04L dl on fl.ROLLNAME = dl.ROLLNAME join DD04T dt on fl.ROLLNAME = dt.ROLLNAME join DD01L ml on fl.DOMNAME = ml.DOMNAME where fl.ROLLNAME is NOT NULL
Die Felder CHECKTABLE und ENTITYTAB enthalten Stammtabellen der Rollen. So verweisen beide Felder beim Feld ‚BUKRS’ auf die Tabelle ‚T001’. Dies ist die Tabelle aller Buchungskreise.
Suchmethoden
Eine erste Möglichkeit der Suche ist, über die Texte der Felder und Tabellen zu gehen. Sucht man z.B. in einem RE-FX-Modul (flexibles Immobilienmanagement) nach der Tabelle der Wirtschaftseinheiten, kann nach dem Wort ‚Wirtschaftseinheit’ in den Tabellen-Texten gesucht werden. Dies grenzt die Auswahl durchaus schon gut ein.
Eine andere Möglichkeit ist, die Hinweise zu Eingabefeldern in SAP-Masken zu nutzen.
Dazu ist es notwendig, den Cursor im Eingabefeld mit den gesuchten Daten zu positionieren (hier Buchungskreis).
Danach wird mit der Funktionstaste F1 die Hilfe aufgerufen.
In diesem Fenster befindet sich der Button ‚Technische Informationen’ (der kleine Hammer und Schraubenschlüssel). Bei Klick auf dieses Symbol erscheint ein Fenster mit technischen Informationen zum ausgewählten Feld.
Das Feld ‚Tabellenname’ ist meist nicht besonders hilfreich, da hier oft nur die Bezeichnung der Feldsammlung steht, welche die aktuelle Eingabemaske ausmacht. Lohnender ist es meist, mit dem Namen des Feldes in den DD-Tabellen auf die Suche zu gehen, da er sich seltener ändert und so mit hoher Wahrscheinlichkeit auch die gesuchte Tabelle im Filter sein wird. In diesem Fall ist jedoch auch der Tabellenname absolut korrekt: Die transparente Tabelle mit den Buchungszeilen ist tatsächlich die Tabelle BSEG.
Eine weitere gute, kostenlose Hilfe auf der Suche nach Tabellen möchte ich hier noch erwähnen. Die gesamte SAP-Dokumentation ist im Internet verfügbar (help.sap.com) und über allgemeine Suchseiten kommt man auch leicht zu relevanten Themen. Auch hier werden häufig auch die transparenten Tabellen genannt.