Anfang des Inhaltsbereichs

Eingebaute ABAP-Typen Dokument im Navigationsbaum lokalisieren

Diese Datentypen sind im Kernel des R/3-Systems eingebaut und in jedem ABAP-Programm sichtbar. Die eingebauten Typen können zum einen bei der Definition von programmlokalen Datentypen und Datenobjekten zum anderen bei der Typisierung von Schnittstellenparametern und Feldsymbolen verwendet werden.

Vor Release 4.5A wurden eingebaute Datentypen auch als vordefinierte Datentypen bezeichnet. Seit Release 4.5A kann man aus der Sicht eines ABAP Programms Datentypen auch programmübergreifend im ABAP Dictionary (vor)definieren. Deshalb ist der Begriff 'vordefiniert' nicht mehr eindeutig und wird durch 'eingebaut' ersetzt.

Eingebaute elementare ABAP-Typen fixer Länge

Diese eingebauten elementaren Datentypen dienen der Typisierung von Einzelfeldern, deren Länge zur Laufzeit immer festgelegt ist. Die folgende Tabelle faßt die elementaren eingebauten Datentypen fixer Länge zusammen. Die Feldlängen sind in Bytes angegeben.

Datentyp

Initiale

Feldlänge

Gültige

Feldlänge

Initialwert

Bedeutung

Numerische Typen

I

4

4

0

Ganze Zahl

F

8

8

0

Gleitpunktzahl

P

8

1 - 16

0

Gepackte Zahl

Zeichenartige Typen

C

1

1 - 65535

'     '

Textfeld

(alphanumerische Zeichen)

D

8

8

'00000000'

Datumsfeld

(Format: JJJJMMTT)

N

1

1 - 65535

'0 … 0'

Numerisches Textfeld

(numerische Zeichen)

T

6

6

'000000'

Zeitfeld

(Format HHMMSS)

Hexadezimaler Typ

X

1

1 - 65535

X'0 … 0'

Hexadezimalfeld

Die Datentypen D, F, I und T beschreiben die technischen Eigenschaften eines Datenobjekts vollständig. Die Datentypen C, N, P und X sind generisch. Wenn ein generischer Typ zur Definition eines programmlokalen Datentyps oder bei der Deklaration eines Datenobjekts verwendet wird, müssen Feldlänge und beim Typ P die Anzahl der Dezimalstellen im Programm festgelegt werden. Bei Verwendung der generischen Datentypen für die Typisierung von Schnittstellenparametern oder Feldsymbolen müssen die technischen Eigenschaften nicht spezifiziert werden.

Der Initialwert, und bei den generischen Typen die initiale Feldlänge, sind Werte, die bei Verwendung von Kurzformen der Anweisungen TYPES und DATA implizit eingesetzt werden.

Die eingebauten Typen fixer Länge sind unterteilt in:

Numerische Typen

Neben fünf nichtnumerischen Typen, Texfelder (C), numerische Textfelder (N), Datumsfelder (D), Zeitfelder (T) und Hexadezimalfelder (X), gibt es drei numerische Typen, die der Repräsentation und Berechnung von Zahlen in ABAP dienen. Der Datentyp N ist kein numerischer Typ. Daten vom Typ N können nur numerische Zeichen (0,1,2,…,9) enthalten, werden intern aber nicht als Zahlen repräsentiert. Typische N-Felder sind Kontonummern und Postleitzahlen.

Der Wertebereich reicht von -2**31 bis zu 2**31-1 und berücksichtigt nur ganze Zahlen. Bei arithmetischen Rechnungen (z.B. Divisionsrechnungen), die keine ganzen Zahlen ergeben, wird das Ergebnis gerundet, nicht abgeschnitten.

Daten vom Typ I werden u.a. für Zähler, Stückzahlen, Indizes oder Zeiträume verwendet.

Daten vom Typ P können Ziffern nach dem Dezimalpunkt aufweisen. Die Anzahl der Dezimalstellen ist generisch und wird im Programm festgelegt. Der Wertebereich von Typ P Daten hängt sowohl von ihrer Größe als auch von der Anzahl der Stellen hinter dem Dezimalpunkt ab. Die gültige Größe liegt zwischen 1 und 16 Bytes. Zwei Dezimalstellen werden in ein Byte gepackt, wobei das letzte Byte nur eine Stelle und das Vorzeichen enthält. Hinter dem Dezimalpunkt sind bis zu 14 Stellen erlaubt. Der Initialwert ist Null. Bei der Arbeit mit Daten vom Typ P empfiehlt es sich, im ABAP-Editor das Programmattribut Festpunktarithmetik zu setzen, sonst werden P-Zahlen wie ganze Zahlen behandelt.

Daten vom Typ P werden für die Angabe von Entfernungen, Gewichten, Geldbeträgen usw. verwendet.

Der Wertebereich von Gleitpunktzahlen reicht von 1x10**-307 bis zu 1x10**308 für positive und negative Zahlen, einschließlich der 0 (null). Der Genauigkeitsbereich ist ungefähr 15 Stellen, abhängig von der Gleitpunktarithmetik der Hardware-Plattform. Da Daten vom Typ F intern in ein binäres System konvertiert werden, können Rundungsfehler auftreten. Obwohl der ABAP-Prozessor versucht, diese Fehler auf ein Minimum zu beschränken, sollten Sie diesen Datentyp nicht einsetzen, wenn es Ihnen auf Genauigkeit ankommt. In diesem Fall benutzen Sie besser Daten vom Typ P.

Daten vom Typ F werden benutzt, wenn sehr große Wertebereiche benötigt werden und es auf Rundungsfehler nicht ankommt.

Berechungen mit I- und F-Feldern sind schneller als mit P-Feldern. Arithmetische Operationen mit I- und F-Feldern sind eng verwandt mit Maschinensprache-Anweisungen, während P-Felder größere Software-Unterstützung erfordern. Dennoch gibt es zu Daten vom Typ P keine Alternative, wenn es um Genauigkeit oder bestimmte Anforderungen an den Wertebereich geht.

Zeichenartige Typen

Von den fünf nichtnumerischen Typen bezeichnen wir die vier Typen C, D, N, T als zeichenartige Typen und Felder mit solch einem Typ als Zeichenfeld. Jede Stelle eines solchen Felds belegt im Speicher den Platz für den Code eines Zeichens. Zur Zeit arbeitet ABAP nur mit Einbyte-Codes wie ASCII und EBCDI. Die Erweiterung auf UNICODE, wo ein Zeichen zwei oder vier Bytes belegt ist in Vorbereitung.

Hexadezimaltyp

Der übrige nichtnumerische Typ X interpretiert immer einzelne Bytes im Speicher. Ein Byte wird durch die zweistellige Hexadezimaldarstellung dargestellt. Die Felder dieses Typs heißen Hexadezimalfelder. In Hexadezimalfeldern kann auch eine Einzelbitverarbeitung durchgeführt werden.

Eingebaute elementare ABAP-Typen variabler Länge

Diese eingebauten elementaren Datentypen dienen der Typisierung von Einzelfeldern, deren Länge erst zur Laufzeit festgelegt wird. Es gibt zwei in ABAP eingebaute elementare Typen variabler Länge, die zusammenfassend auch Strings genannt werden:

Eine Zeichenfolge ist ein zeichenartiger Typ variabler Länge. Eine Zeichenfolge kann beliebig viele alphanumerische Zeichen aufnehmen. Die Länge einer Zeichenfolge ist die Anzahl der Zeichen multipliziert mit der Länge der internen Darstellung des Zeichens.

Eine Bytefolge ist ein Hexadezimaltyp variabler Länge. Eine Bytefolge kann beliebig viele Bytes aufnehmen. Die Länge einer Bytefolge entspricht der Anzahl der Bytes.

Beim Anlegen von Strings als Datenobjekte wird nur ein Verwaltungseintrag namens String-Header statisch vereinbart wird. Die eigentlichen Datenobjekte werden zur Laufzeit durch operationale Anweisungen dynamisch erzeugt und verändert.

Der Initialwert eines Strings ist der leere String mit der Länge 0. Eine Struktur, die einen String enthält wird intern als tiefe Struktur behandelt. Das bedeutet, daß es keine Konvertierungsregeln für Strukturen gibt, die Strings enthalten.

Eingebaute komplexe Datentypen

ABAP enthält keine eingebauten komplexen Datentypen, die bei der Definition von programmlokalen Datentypen oder von Datenobjekten verwendet werden können. Alle komplexen Datentypen beruhen auf den elementaren ABAP-Typen und werden erst im ABAP-Programm oder im ABAP Dictionary konstruiert.

Ende des Inhaltsbereichs