Die folgende Abbildung zeigt eine Übersicht über die Datentypen in ABAP. Datentypen sind ein Teilbaum der
ABAP-Typenhierarchie.Datentypen unterteilen sich in elementare, Referenz- und komplexe Typen.
Elementare Typen
Elementare Typen sind atomar in dem Sinn, daß sie nicht aus anderen Typen zusammengesetzt sind. Sie sind nochmals in solche fixer und solche variabler Länge unterteilt.
Elementare Typen fixer Länge
Es gibt acht in ABAP eingebaute elementare Typen fixer Länge:
Zeichenfelder (C), numerische Zeichenfelder (N), Datumsfelder (D) und Zeitfelder (T).
Bytefelder (X).
Integer (I), Gleitpunktzahlen (F) und gepackte Zahlen (P).
Elementare Typen variabler Länge
Es gibt zwei in ABAP eingebaute elementare Typen variabler Länge:
Referenztypen
Referenztypen beschreiben Datenobjekte, die Referenzen (Zeiger) auf andere Objekte (Datenobjekte und Objekte aus ABAP Objects) enthalten. Referenztypen bilden eine Hierarchie, welche die Hierarchie der Objekte abbildet, auf welche die Referenzen zeigen können. Es gibt keine vordefinierten Referenzen, sondern sie müssen im Programm definiert werden.
Komplexe Typen
Komplexe Typen sind aus anderen Typen zusammengesetzt. Sie erlauben die Verwaltung und Bearbeitung von semantisch zusammengehörigen Datenmengen unter einem Namen. Auf ein Datenobjekt eines komplexen Typs kann insgesamt oder komponentenweise zugegriffen werden. Es gibt in ABAP keine eingebauten komplexen Datentypen. Ein komplexer Datentyp muß entweder im ABAP-Programm oder im ABAP Dictionary definiert werden. Sie sind in Strukturen und interne Tabellen unterteilt.
Strukturen
Eine Struktur (auch Feldleiste genannt) ist eine Folge beliebiger elementarer Typen, Referenztypen oder komplexer Datentypen.
Strukturen dienen in ABAP-Programmen zur Zusammenfassung von logisch zusammengehörigen Arbeitsbereichen. Da die Einzelelemente von Strukturen beliebige Datentypen haben können, sind die Einsatzmöglichkeiten von Strukturen sehr umfassend. Beispielsweise dienen Strukturen mit elementaren Elementen der Darstellung von Zeilen aus Datenbanktabellen und Strukturen mit komplexen Elementen werden eingesetzt, um alle Eigenschaften eines Bildschirms oder Controls in einem Datenobjekt zusammenzufassen.
Bei Strukturen spielen folgende Begriffe eine Rolle:
Geschachtelte Strukturen sind Strukturen, die wiederum Strukturen als Komponenten enthalten. Flache Strukturen enthalten nur elementare Datentypen fixer Länge, also keine internen Tabellen, Referenztypen oder Strings. Für den Begriff tiefe Struktur spielt es keine Rolle, ob die Struktur geschachtelt oder nicht geschachtelt ist. Geschachtelte Strukturen sind solange flach, wie keiner der obigen Typen in irgendeiner Schachtelungsebene enthalten ist.
Jede Struktur, die unabhängig von der Schachtelung mindestens eine interne Tabelle, einen Referenztyp oder einen String als Komponente enthält bezeichnen wir als tief. Dementsprechend heißen interne Tabellen, Referenzen und Strings auch tiefe Datentypen. Der technische Unterschied zwischen den tiefen und den übrigen Datentypen ist der, daß beim Anlegen eines tiefen Datenobjekts im Speicher, an der Stelle, an der bei einem flachen Typ der tatsächliche Feldinhalt abgelegt wird, bei tiefen Typen nur ein Zeiger angelegt wird, der auf den wirklichen Feldinhalt bzw. auf weitere Verwaltungsinformationen zeigt. Nur bei flachen Strukturen befindet sich also der Dateninhalt der Struktur innerhalb der Speichergrenzen der Struktur selbst. Tiefe Strukturen enthalten an der Position der tiefen Komponenten dagegen Zeiger auf die Daten. Aus diesem Grund werden tiefe Strukturen bei Zuweisungen, Offset-/Längenzugriffen etc. auch anders behandelt als flache Strukturen.
Interne Tabellen
Interne Tabellen bestehen aus einer Folge von Zeilen gleichen Datentyps. Interne Tabellen sind charakterisiert durch
Interne Tabellen werden immer dann eingesetzt, wenn mehrfache Daten einer festen Struktur programmintern verwendet werden. Ein wichtiges Einsatzgebiet ist z.B. die programminterne Speicherung von Daten aus der Datenbank.
Beispiele komplexer Datentypen
Die folgende Liste enthält einige Beispiele für komplexe Datentypen, geordnet nach steigender Komplexität:
Die Abbildung zeigt, wie aus Einzelfeldern komplexe Typen beliebiger Komplexität aufgebaut werden können.
Weitere Themen zu Datentypen
Die verschiedenen Datentypen können auf unterschiedlichen Ebenen des R/3-Systems definiert werden. Nähere Informationen hierzu finden sich unter
Definition von Datentypen
In bestimmten ABAP-Anweisungen kann man sich mit dem Zusatz TYPE auf vorhandene Datentypen beziehen. Dies setzt voraus, daß die Datentypen an der gewünschten Stelle sichtbar sind. Nähere Informationen hierzu finden sich unter
Sichtbarkeit von Datentypen
Bei der Arbeit mit Daten ist es wichtig zu wissen, ob die Datentypen kompatibel sind oder nicht. Nähere Informationen hierzu finden sich unter
Kompatibilität von Datentypen.