Show TOC Anfang des Inhaltsbereichs

Datentypen  Dokument im Navigationsbaum lokalisieren

Jede Programmiersprache unterscheidet verschiedene Arten von Daten für verschiedene Verwendungszwecke wie z.B. zeichenartige Daten für die Speicherung und Darstellung von Werten und numerische Daten für Berechnungen. Die Beschreibung der jeweiligen Eigenschaften erfolgt mit Hilfe von Datentypen. Sie bestimmen z.B. wie die Daten im Speicher abgelegt werden und wie die ABAP-Anweisungen mit den Daten umgehen müssen.

Datentypen unterteilen sich in elementare, Referenz- und komplexe Typen.

Elementare Typen

Datentypen fester oder variabler Länge, die nicht aus anderen Typen zusammengesetzt sind.

Die Datentypen variabler Länge unterscheiden sich darin von den Typen fester Länge, dass sich die Länge und damit der Speicherplatzbedarf von Datenobjekten solcher Datentypen dynamisch zur Laufzeit verändern kann und nicht bereits während der Deklaration des Datenobjekts unabänderlich festgelegt wird.
Vordefinierte und benutzerdefinierte elementare Datentypen

ABAP erlaubt mit der Anweisung TYPES die Definition von benutzerdefinierten elementaren Datentypen, die auf den vordefinierten elementaren Datentypen beruhen. Dabei werden sämtliche technischen Merkmale des neuen Datentyps festgeschrieben. Beispielsweise kann man basierend auf dem vordefinierten Typ P einen neuen Typ P_2 definieren, der zwei Nachkommastellen hat, und diesen verwenden, um entsprechende Datenobjekte zu deklarieren.

Referenztypen

Referenztypen sind tiefe Datentypen, die Referenzvariablen beschreiben, d.h. Datenobjekte, die Referenzen enthalten. Eine Referenzvariable kann nicht nur als Einzelfeld, sondern auch als kleinste unteilbare Einheit komplexer Datenobjekte wie Strukturen oder interne Tabellen definiert werden.

Komplexe Datentypen

Komplexe Datentypen setzen sich aus anderen Datentypen zusammen. Man unterscheidet dabei strukturierte Typen und Tabellentypen.

Strukturen

Die Instanzen von strukturierten Typen werden Strukturen genannt und dienen in ABAP-Programmen zur Zusammenfassung von logisch zusammengehörigen Arbeitsbereichen. Da die Einzelelemente von Strukturen beliebige Datentypen haben können, also wiederum Strukturen oder interne Tabellen sein können, sind die Einsatzmöglichkeiten von Strukturen sehr umfassend. Beispielsweise dienen Strukturen mit elementaren Elementen der programminternen 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 und nicht-geschachtelte Strukturen

·        flache und tiefe Strukturen

 

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 flache Struktur spielt es keine Rolle, ob die Struktur geschachtelt oder nicht geschachtelt ist. Geschachtelte Strukturen sind solange flach, wie keiner der genannten 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 dementsprechend als tief.

Nur bei flachen Strukturen befindet sich der Dateninhalt der Struktur innerhalb der Speichergrenzen der Struktur selbst, da tiefe Strukturen an der Position der tiefen Komponenten Zeiger auf die Daten enthalten. 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

·        einen Zeilentyp

·        einen Tabellenschlüssel, welcher der Identifikation von Tabellenzeilen dient. Wir unterscheiden zwischen eindeutigen und nicht eindeutigen Schlüsseln.

·        die Tabellenart, die definiert, wie ABAP auf die Tabelle zugreift (unsortierte und sortierte Indextabellen sowie Hash-Tabellen).

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 Informationen zum  Thema Datentypen

- Definition und Sichtbarkeit von Datentypen auf unterschiedlichen Ebenen des SAP-Systems.

- Kompatibilität.

Ende des Inhaltsbereichs