Mit den EGL-Anweisungen
import und use können Sie die Sichtbarkeit von Codeelementen erweitern.
EGL-Anweisungen
import und
use werden allgemein in den folgenden Situationen verwendet:
- import: Sie importieren einen Logikabschnitt (z. B. ein Programm oder eine Bibliothek)
bzw. einen Datenabschnitt (z. B. einen Datensatz oder ein Datenelement), damit Sie so auf den Abschnitt verweisen können, als ob er Bestandteil des aktuellen Pakets wäre.
- import: Sie importieren ein ganzes Paket, damit Sie so auf die in ihm enthaltenen Abschnitte
verweisen können, als ob diese Bestandteil des aktuellen Pakets wären.
- use: Sie verwenden eine Bibliothek, die sich im aktuellen Paket befindet, damit Sie das Bibliothekspräfix aus allen Funktionsnamen oder Variablennamen entfernen können, die Sie aus dieser Bibliothek verwenden.
- use: Sie verwenden eine Formulargruppe in Ihrem aktuellen Paket, um einen nicht qualifizierten Zugriff auf die Formulare in dieser Gruppe zu erhalten.
- use: Sie können eine Datentabelle verwenden, damit das Programm direkt auf deren Felder zugreifen kann.
- Die Anweisungen import und use können kombiniert werden und so auf eine Funktion oder Variable in einer Bibliothek aus einem anderen Paket verweisen.
Weitere Informationen finden Sie unter import und use.
Implizite Anweisungen 'import' und 'use'
Sie können direkt auf die von EGL definierten Abschnitte verweisen, ohne sie mit import zu importieren. Desgleichen können Sie direkt auf Funktionen in Systembibliotheken oder EGL-definierten Aufzählungen verweisen, ohne die Anweisung
use für sie anzugeben.
Diese Abschnitte werden daher als implizit importiert und verwendet bezeichnet.
Beispielsweise können Sie die Systemfunktion
sysLib.writeStdOut() aufgrund dieser
impliziten Anweisung
use ohne einen Verweis auf die Bibliothek aufrufen:
writeStdOut("Progam complete.");
Beispiel
Sie wollen auf Kundeninformationen in Ihrem Paket für Außenstände (arpackage) unter Verwendung der Datendefinitionen und Funktionen aus Ihrem Paket für das Customer-Relationship-Management (crmpackage) zugreifen.
Um die Funktion
getCustomer() aus der Bibliothek
CustomerLib im
Paket
com.companyb.crmpackage aufzurufen, können Sie den folgenden Code verwenden:
package com.companyb.arpackage;
import com.companyb.crmpackage.*; // home of CustomerLib library
program CustomerTest type BasicProgram
use CustomerLib; // add these functions to my scope
function main()
getCustomer();
end
end
Die folgende Aspekte des Beispiels sind wichtig:
- Die Zeile import com.companyb.crmpackage.*; weist EGL an, das gesamte Paket
CRMPackage in den Geltungsbereich des aktuelle Logikabschnitts aufzunehmen. Nur Abschnitte, auf die Sie verweisen, werden zum Code hinzugefügt.
- Falls Sie die Anweisung use auf Kommentar setzen, können Sie das Programm erst dann generieren, wenn Sie den Bibliotheksnamen zum Funktionsnamen hinzufügen
(wie in CustomerLib.getCustomer()).
- Falls Sie später im Programm
CustomerTest eine lokale Funktion getCustomer() definieren, ruft EGL diese Funktion anstelle der Funktion desselben Namens in com.companyb.crmpackage.CustomerLib auf.
Falls Bibliotheken namens CustomerLib sowohl in
ARPackage als auch in CRMPackage vorhanden sind, verwendet EGL analog die lokale Version (ARPackage).