Show TOC Anfang des Inhaltsbereichs

Selbstdefinierte elementare Datentypen und Datenobjekte  Dokument im Navigationsbaum lokalisieren

Programmlokale elementare Datentypen und Datenobjekte werden ausschließlich durch Bezug auf bekannte elementare Datentypen und Datenobjekte definiert bzw. deklariert (siehe: Die Anweisungen TYPES und DATA). Bei der Verwendung des TYPE-Zusatzes kann entweder auf einen eingebauten ABAP Typ, einen vorher definierten elementaren programmlokalenTyp oder ein im ABAP Dictionary definiertes Datenelement Bezug genommen werden. Beim LIKE-Bezug kann dobj ein vorher deklariertes Datenobjekt mit elementarem Datentyp sein. Ohne TYPE- oder LIKE-Zusatz wird implizit der eingebaute Typ c verwendet. Es sollte aber immer die explizite Anweisung verwendet werden. Insbesondere ist die Kurzform innerhalb von Klassen verboten.

Elementare programmlokale Datentypen können Programme transparenter und lesbarer machen. Wenn man einen programmlokalen Datentyp zur Typisierung mehrerer Datenobjekten verwendet hat, lässt sich der Datentyp all dieser Datenobjekte auf einmal ändern, indem man die Definition des Datentyps in der TYPES-Anweisung ändert. Oder wenn eine bestimmte Menge von Datentypen regelmäßig in verschiedenen Programmen benutzt werden soll, die Datentypen aber nicht systemweit im ABAP Dictionary abgelegt werden sollen, kann man sich ein Include-Programm für die Typdefinition anlegen und in die Programme einbetten.

Beispiel

TYPES: number TYPE i,
       length TYPE p DECIMALS 2,
       code(3) TYPE c.

...

In diesem Beispiel wird ein Datentyp mit dem Namen NUMBER definiert. Er ist bis auf den Namen identisch mit dem eingebauten ABAP-Typ i und dient somit nur zur Erhöhung der Lesbarkeit des Programms.

Es wird ein Datentyp LENGTH definiert, der auf dem eingebauten generischen ABAP-Typ p basiert. LENGTH wird mit einer gegebenen Zahl von Dezimalstellen definiert. Wäre es zum Beispiel erforderlich die Genauigkeit von Längenangaben zu ändern, müßte man lediglich die TYPES-Anweisung des Programms ändern.

Es wird ein dritter Datentyp CODE definiert. CODE basiert auf dem eingebauten generischen ABAP-Typ c. Die Feldlänge wird hier mit 3 Bytes festgelegt.

Beispiel

DATA counts TYPE i.

TYPES: company    TYPE spfli-carrid,
       no_flights LIKE counts.

Dieses Beispiel zeigt, wie mit dem Zusatz TYPE auf die Spalte CARRID der Datenbanktabelle SPFLI verwiesen wird. Der Zusatz LIKE verweist auf ein bereits vorhandenes Datenobjekt.

Beispiel

REPORT demo_types_statement.

TYPES mytext   TYPE c LENGTH 10.
TYPES myamount TYPE p DECIMALS 2.

DATA text      TYPE mytext.
DATA amount    TYPE myamount.

text = ' 4 / 3 = '.
amount = 4 / 3 .

WRITE: text, amount.

Das Programm erzeugt die folgende Bildschirmausgabe:

4 / 3 =                1.33

Es werden programmlokale Datentypen mytext und myamount mit der Anweisung TYPES definiert. Die technischen Eigenschaften werden mit Bezug auf eingebauten ABAP-Typen definiert. Dann werden die Datenobjekte text und amount mit der Anweisung DATA deklariert. Ihre Datentypen werden mit Bezug auf mytext und myamount festgelegt. Den Datenobjekten werden Werte zugeordnet, und der Inhalt der Datenobjekte wird auf die Ausgabeliste geschrieben.

 

Ende des Inhaltsbereichs