In einem Gültigkeitsbereich dürfen nicht gleichzeitig zwei identische Namen vorhanden sein.
Die meisten Kennungen, auf die Sie von einem anderen Abschnitt aus zugreifen können, verweisen jedoch auf einen Speicherbereich, der sich logisch innerhalb eines
Containers (eines Hauptlogikabschnitts wie beispielsweise ein Programm) befindet. In diesen Fällen können Sie einen Namen mit dem Namen des umschließenden
Containers qualifizieren. Hierfür wird die Punktsyntax verwendet. Auf diese Weise können Sie die folgenden Kennungen qualifizieren:
- Felder in Datensätzen
- Felder in Formularen
- Variablen und Funktionen in Bibliotheken
- Abschnitte in Paketen
Wenn sich beispielsweise die Variable
customerBalance in einer Datensatzvariablen namens
myCustomer befindet, referenziert Ihr Code die Variable als Feld des Datensatzes:
myCustomer.customerBalance
Wenn dieselbe Kennung in zwei Gültigkeitsbereichen vorhanden ist, dann ist jeder nicht qualifizierte Verweis auf die Kennung ein Verweis auf den nächstliegenden
Gültigkeitsbereich. Sie können Qualifikationsmerkmale verwenden, um dieses Verhalten außer zu Kraft setzen. Betrachten Sie als Beispiel ein
Programm mit einer Deklaration vom Typ '
use' für den Zugriff auf die Bibliothek
customerLib.
Das Programm und die Bibliothek deklarieren jeweils eine Funktion namens
getCustomer().
Sie können Variablennamen wie folgt qualifizieren:
- Wenn eine Funktion im Programm getCustomer() ohne Qualifikationsmerkmal aufruft, ruft EGL die lokale (Programm)Version auf.
- Wenn Sie den Funktionsnamen mit dem Namen der Bibliothek qualifizieren, ruft EGL die Funktion über die Bibliothek auf:
customerLib.getCustomer();
- Wenn Sie dem Abschnittsnamen den Paketnamen (beispielsweise customerPackage) voranstellen, kann EGL die Bibliothek oder Datentabelle von einem
anderen Paket aufrufen, selbst wenn Sie den Abschnitt nicht in einer Anweisung vom Typ 'import' referenziert haben:
customerPackage.customerLib.getCustomer();
Der
Paketname qualifiziert immer einen Logikabschnittsnamen und kann nicht unmittelbar einer Variablen, einer Konstanten oder einem Funktionsnamen vorangestellt
werden. Eine lokale Kennung kann mit einer Datentabelle oder einem Bibliotheksnamen identisch sein, wenn sich die lokale Kennung in einem anderen Paket befindet als
die Datentabelle bzw. die Bibliothek. Um auf die Datentabelle oder den Bibliotheksnamen zu verweisen, muss der entsprechende Paketname eingeschlossen werden.
Weitere
Informationen finden Sie unter
Namensauflösung in einem Ausdruck.