CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Datensuche in SAP-Systemen ohne ABAP Dictionary

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.