Die folgende Abbildung zeigt wo die Datentypen in ABAP definiert werden können:
Wir unterscheiden zwischen
· Eingebauten ABAP-Typen, die im Kernel vordefiniert sind.
· Programmlokalen Datentypen, die in ABAP-Programmen definiert werden können
· Datentypen im Repository, die programmübergreifend allen Repository-Objekten zur Verfügung stehen.
· Die eingebauten ABAP-Typen (c, d, f, i, n, p, t, x) sind immer sichtbar. Es können keine gleichnamigen programmlokalen Typen oder Typen im ABAP Dictionary angelegt werden.
· Bei der Sichtbarkeit von programmlokalen Datentypen ist zwischen lokalen Datentypen in Prozeduren und globalen Datentypen zu unterscheiden. In Prozeduren definierte Datentypen verschatten gleichnamige Datentypen, die im globalen Deklarationsteil definiert werden. Alle programmlokalen Datentypen verschatten wiederum gleichnamige Datentypen im ABAP Dictionary. Dies gilt auch für Datentypen aus Typgruppen.
· Bei der Sichtbarkeit von Datentypen im ABAP Dictionary ist zur Zeit noch zwischen eigenständigen Datentypen und Datentypen in Typgruppen zu unterscheiden. Datentypen in Typgruppen verschatten gleichnamige eigenständige Datentypen. Dies sollte jedoch eine Ausnahmesituation sein. Alle Datentypen des Dictionarys sollten in einem Namensraum liegen. Beim Anlegen eines eigenständigen Datentyps gibt das System eine Warnung aus, falls der Name mit dem Namen einer Typgruppe gefolgt von einem Unterstrich beginnt. Umgekehrt können keine Typgruppen angelegt werden, wenn es schon einen eigenständigen Datentyp mit dem gleichen Namen gefolgt von einem Unterstrich gibt.
Die Abbildung veranschaulicht die Sichtbarkeit von programmlokalen und Dictionary-Datentypen:
Das System sucht von innen nach außen. Wenn im Programm TYP1 in einem TYPE-Zusatz angegeben ist, wird sowohl in der Prozedur als auch im Rahmenprogramm der Typ aus dem Dictionary verwendet. Wird TYP2 in der Prozedur angegeben, wir der lokale Typ der Prozedur verwendet. Wird TYP2 im Rahmenprogramm angegeben, wird der Typ des Rahmenprogramms verwendet. TYP2 aus dem Dictionary ist unsichtbar. Wird TYP3 angegeben, wird sowohl in der Prozedur als auch im Rahmenprogramm der Typ des Rahmenprogramms verwendet. TYP3 aus dem Dictionary ist unsichtbar.