Qualifikationsmerkmale

In einem Geltungsbereich 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 Geltungsbereichen vorhanden ist, dann ist jeder nicht qualifizierte Verweis auf die Kennung ein Verweis auf den nächstliegenden Geltungsbereich. 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.