Anfang des Inhaltsbereichs

Datentypen Dokument im Navigationsbaum lokalisieren

Die folgende Abbildung zeigt eine Übersicht über die Datentypen in ABAP. Datentypen sind ein Teilbaum der ABAP-Typenhierarchie.

Diese Grafik wird im zugehörigen Text erklärt

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:

  1. Strukturen, die aus einer Serie von elementaren Datentypen fixer Länge bestehen (nicht-geschachtelte, flache Strukturen).
  2. Interne Tabellen, deren Zeilentyp ein elementarer Typ ist (Vektor).
  3. Interne Tabellen, deren Zeilentyp eine nicht-geschachtelte Struktur ist ('echte' Tabellen)
  4. Strukturen mit Strukturen als Komponenten (geschachtelte Strukturen, flach oder tief).
  5. Strukturen mit internen Tabellen als Komponenten (Beispiel für tiefe Strukturen)
  6. Interne Tabellen, deren Zeilentyp wiederum interne Tabellen enthält.

Diese Grafik wird im zugehörigen Text erklärt

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.

Ende des Inhaltsbereichs