ABAP Dictionary – Die wichtigsten Funktionen

Das ABAP Dictionary (ehemals Data Dictionary) mit dem Transaktionscode SE11 ist eine der wichtigsten Transaktionen in SAP ERP bzw. SAP S/4HANA. Was das ABAP Dictionary auszeichnet, warum man diese Transaktion für die ABAP-Entwicklung benötigt und welche nützlichen Funktionen es gibt, erfährst Du in diesem Artikel.

Was ist das ABAP Dictionary?

Das ABAP Dictionary ist eine Transaktion in SAP ERP bzw. SAP S/4HANA. Sie wird mit dem Transaktionscode SE11 aufgerufen. Das ABAP Dictionary dient der Deklaration von Metadaten, die Tabellen betreffen.

Metadaten sind Daten über Daten und dienen der Beschreibung von Daten. Beispielsweise sind Tabellenspalten Metadaten. Sie Beschreiben den Inhalt der einzelnen Spalten in einer Tabelle.

Im ABAP Dictionary ist es möglich folgende ABAP-Objekte anzulegen, zu ändern oder anzuzeigen:

  • Datenbanktabelle
  • View
  • Datentyp
  • Typgruppe
  • Domäne
    • Datenelement
    • Struktur
    • Tabellentyp
  • Suchhilfe
  • Sperrobjekt
Das ABAP Dictionary ist eine Transaktion in SAP ERP bzw. SAP S/4HANA. Sie wird mit dem Transaktionscode SE11 aufgerufen. Das ABAP Dictionary dient der Deklaration von Metadaten, die Tabellen betreffen.

Mit dem ABAP-Dictionary kann man alle ABAP-Objekte im SAP-System analysieren, auch die bestehenden SAP-Objekte.

Funktionen des ABAP Dictionary

Das ABAP Dictionary ist eines der wichtigsten Transaktionen im SAP-System. Zum einen sind dadurch die Verwaltung der Metadaten möglich.

Die wichtigsten Funktionen des ABAP Dictionary sind:

  • Verwaltung von Datenbankobjekten
  • Typdefinition
    • Domänen
    • Datentypen
  • Suchhilfen

Anlegen einer Tabelle im ABAP Dictionary

Wenn man im ABAP Dictionary eine Tabelle anlegen möchte, darf der Name der Tabelle nicht im Namensraum der SAP liegen. Das heißt, dass der Name mit Y, Z oder einem eigenen Kundennamensraum beginnen muss.

Im ABAP Dictionary kann man einfach eine Datenbanktabelle anlegen. Zuerst startet man die Transaktion SE11, wählt den Radiobutton “Datenbanktabelle” aus, gibt den Namen seiner Tabelle ein (z. B. “ZZERP_UP”) und klickt auf den “Anlegen”-Button. Man kann auch eine bestehende Tabelle kopieren. Beachte, dass an der zweiten und dritten Stelle kein Unterstrich im Namen verwendet werden darf.

Anschließend landet man im nächsten Fenster im Tabreiter “Auslieferung und Pflege”. Hier sind die beiden Eingabefelder “Kurzbeschreibung” und “Auslieferungsklasse” Pflichtfelder und müssen mit Werten versehen werden. Die Auslieferungsklasse kann dabei mit folgenden Werten gesetzt werden:

  • A – Anwendungstabelle
  • C – Customizingtabelle
  • L – Tabelle für Ablage temporärer Daten
  • G – Customizingtabelle (aber gegen SAP UPD geschützt)
  • E – Steuerungstabelle
  • S – Systemtabelle (Pflege nur durch SAP)
  • W – Systemtabelle (Inhalte über einen Transport transportierbar)

Meistens wählt man also bei einer eigenen Tabelle die Auslieferungsklasse A.

Der nächste Tabreiter stellt “Felder” dar. Hier gibt man die Tabellenfelder mit dem Namen und Datenelement an. Dabei gibt man an, ob es sich bei dem Feld um ein Schlüsselfeld handelt und ob der Wert in der Spalte leer sein darf.

Man sollte dabei unbedingt darauf achten, das Feld “MANDT”, also den Mandanten, mit anzugeben. In einem SAP-System können mehrere Mandanten gleichzeitig arbeiten. Durch dieses Schlüsselfeld ist sichergestellt, dass ein Mandant nur seine eigenen Daten sehen und bearbeiten darf. Sollte man das Feld nicht mit angeben, so sind die Daten mandantenübergreifend verwendbar.

Wenn man möchte, kann man die Tabelle um weitere wichtige Organisationseinheiten, wie z.B. den Buchungskreis, erweitern.

Der nächste Tabreiter stellt "Felder" dar. Hier gibt man die Tabellenfelder mit dem Namen und Datenelement an. Dabei gibt man an, ob es sich bei dem Feld um ein Schlüsselfeld handelt und ob der Wert in der Spalte leer sein darf.

Es empfiehlt sich sehr, für jedes Feld eigene Datentypen zu verwenden, die die Felder semantisch (also fachlich bzw. betriebswirtschaftlich) beschreiben. Ein Datentyp wiederum basiert auf einer Domäne, die die technischen Eigenschaften (also Feldlänge, technischen Datentyp, etc.) definiert.

Bei der Feldangabe kann man Eingabehilfen und Währungs-/Mengenfelder mit angeben. Diese sind in den gleichnamigen Tabreiter zu pflegen.

Klickt man auf den Prüfen-Button bzw. “Strg + F2” erhält man Warnungen, die in der Protokollanzeige im Detail angezeigt werden. Unter anderem steht, dass eine Erweiterungskategorie für die Tabelle fehlt.

Klickt man auf den Prüfen-Button bzw. "Strg + F2" erhält man Warnungen, die in der Protokollanzeige im Detail angezeigt werden. Unter anderem steht, dass eine Erweiterungskategorie für die Tabelle fehlt.

Unter “Zusätze > Erweiterungskategorie…” kann man die Erweiterungskategorie für die Tabelle angeben. Beim Anlegen ist der Status auf “nicht klassifiziert” gesetzt”. Welche Erweiterungskategorie man verwenden soll, wird mit der F1-Hilfe sehr gut beschrieben.

Unter "Zusätze > Erweiterungskategorie..." kann man die Erweiterungskategorie für die Tabelle angeben. Beim Anlegen ist der Status auf "nicht klassifiziert" gesetzt". Welche Erweiterungskategorie man verwenden soll, wird mit der F1-Hilfe sehr gut beschrieben.

Generell dient die Erweiterungskategorie der Definition von einer nachträglichen Erweiterung über Customizing-Includes oder Append-Strukturen.

Nachdem man die Erweiterungskategorie angegeben hat, tauchen bei einer Prüfung keine Warnungen mehr auf.

Möchte man die Tabelle nun aktivieren, wird man auf ein neues Fenster weitergeleitet, indem man die Datenart und Größe angeben muss. Hierbei gibt man an, welche Daten in der Tabelle gespeichert werden (z. B. Stammdaten, Bewegungsdaten, etc.). Zudem hinaus kann man noch die Pufferung und Protokollierung aktivieren.

Diese technischen Einstellungen kann man auch über den Button “Technische Einstellungen” angeben.

Nach dem Aktivieren ist die Tabelle einsatzbereit und kann mit Daten befüllt werden.

Wichtig: Sind Daten in einer Datenbanktabelle gespeichert, kann man die Tabelle nicht einfach über das ABAP Dictionary ändern, sondern muss die Tabelle umsetzen. Hierfür verwendet man die Datenbank-Utility mit dem Transaktionscode SE14.

Append-Struktur anlegen

Hat man eine Tabelle angelegt und möchte diese im Nachhinein erweitern, so kann man sogenannte Append-Strukturen verwenden. Dabei handelt es sich um eine Struktur (also eine Gruppe von Feldern), die genau einer einzigen Tabelle zugeordnet ist.

Mit Append-Strukturen kann man auch bestehende SAP-Tabellen erweitern.

Um mit einer Append-Struktur eine aktivierte Tabelle zu erweitern, gibt man im ABAP Dictionary (Transaktion SE11) die Tabelle an und geht über den entsprechenden Button in den Änderungsmodus. Anschließend klickt man auf den Button “Append-Struktur…” bzw. drückt die F5-Taste.

Um mit einer Append-Struktur eine aktivierte Tabelle zu erweitern, gibt man im ABAP Dictionary (Transaktion SE11) die Tabelle an und geht über den entsprechenden Button in den Änderungsmodus. Anschließend klickt man auf den Button "Append-Struktur..." bzw. drückt die F5-Taste.

Daraufhin gibt man den Namen der Append-Struktur an. Wie bereits erwähnt kann diese Append-Struktur nur die eine Tabelle erweitern. Der Name darf also nicht schon vergeben sein.

Nachdem man die Felder angegeben hat, gibt man die Erweiterungskategorie an und aktiviert die Append-Struktur.

Nachdem man die Felder angegeben hat, gibt man die Erweiterungskategorie an und aktiviert die Append-Struktur.

Sobald man zurückgeht (F3-Taste), kann man die Änderung erkennen. Die Append-Struktur ist nun in der Tabelle zu erkennen. Nun wurde die Tabelle um die Felder der Append-Struktur erweitert.

Sobald man zurück geht (F3-Taste), kann man die Änderung erkennen. Die Append-Struktur ist nun in der Tabelle zu erkennen. Nun wurde die Tabelle um die Felder der Append-Struktur erweitert.

Über den Button “Append-Struktur…” bzw. der F5-Taste kann man die bestehenden Append-Strukturen verwalten.

Customizing-Include anlegen

Im Vergleich zu einer Append-Struktur ist ein Customizing-Include (CI-Include) bei mehreren Tabellen wiederverwendbar. Das bedeutet, dass ein CI-Include mehrere Tabellen erweitern kann.

CI-Includes werden direkt von einem SAP-Entwickler bereitgestellt. Schaut man sich als Beispiel die Tabelle RBKP an, erkennt man das CI-Include durch “.INCLUDE”. Hier heißt das CI-Include “RBKP_FI”.

CI-Includes werden direkt von einem SAP-Entwickler bereitgestellt. Schaut man sich als Beispiel die Tabelle RBKP an, erkennt man das CI-Include durch ".INCLUDE". Hier heißt das CI-Include "RBKP_FI".

Man kann aber auch in seiner eigenen Tabelle CI-Includes angeben und damit seine Tabelle erweitern. Hierfür wählt man in der Menüleiste die Funktion “Bearbeiten > Include > Einfügen”.

Man kann aber auch in seiner eigenen Tabelle CI-Includes angeben und damit seine Tabelle erweitern. Hierfür wählt man in der Menüleiste die Funktion "Bearbeiten > Include > Einfügen".

Anschließend gibt man seine Struktur an und erweitert damit seine Tabelle. Falls man nun feststellt, dass man die Struktur noch nicht erstellt hat, kann man einfach in einem neuen Modus die Struktur im ABAP Dictionary erstellen. Die Struktur wird über den Radio-Button “Datentyp” erstellt. Nach Klick auf den Anlegen-Button kann man die Funktion “Struktur” auswählen.

Anschließend gibt man seine Struktur an und erweitert damit seine Tabelle. Falls man nun feststellt, dass man die Struktur noch nicht erstellt hat, kann man einfach in einem neuen Modus die Struktur im ABAP Dictionary erstellen. Die Struktur wird über den Radio-Button "Datentyp" erstellt. Nach Klick auf den Anlegen-Button kann man die Funktion "Struktur" auswählen.

Weitere wichtige Funktionen

Es gibt natürlich noch viele weitere wichtige Funktionen im ABAP Dictionary. Beispiele hierfür sind der Verwendungsnachweis, die grafische Darstellung von Tabellen und das Kopieren bestehender ABAP-Objekte.

Weitere wichtige Informationsquellen rund um den ABAP Dictionary findest Du in folgenden Artikeln:

Über den Autor

Andreas Geiger

Schön, dass Du Dich für SAP ERP interessierst.

Mein Name ist Andreas Geiger und ich bin der Gründer von ERP-UP.de. Mein Ziel ist es, so viel nützliches Wissen wie möglich über das SAP ERP-System zu vermitteln. Ich möchte Dir damit einen Mehrwert bieten. Es freut mich, wenn ich Dir damit helfen kann.

Mehr zu ERP UP

Schreibe einen Kommentar