Un segundo conjunto de normas determina cómo EGL resuelve las referencias a variables. Para obtener información detallada, consulte la sección Referencias a variables y constantes.
En el caso más simple, defina componentes uno tras otro en un único paquete, sin declarar un componente dentro de otro. La lista siguiente omite muchos detalles, pero muestra una serie de componentes que están en el mismo nivel jerárquico:
Función: Function01 Función: Function02 Función: Function03 Registro: Record01
Los componentes del mismo nivel están disponibles entre sí. Function01, por ejemplo, puede invocar una o las dos otras funciones; y Record01 puede utilizarse como una typedef para las variables de cada una de las tres funciones.
Programa: Program01 Función: Function01 Función: Function02 Función: Function03 Registro: Record01
Finalmente, si el código incluye formularios de texto o impresión, se necesita una declaración de uso para acceder al grupo de formularios que incluye dichos formularios. Una declaración de uso también es deseable cuando se accede a tablas de datos o a bibliotecas. Para obtener más información, consulte la sección Declaración de uso.
La mayoría de esfuerzos de desarrollo tienen componentes que se comparten en más de un paquete. Se aplican las siguientes normas:
my.package.myPart
Como se ha indicado anteriormente, puede especificar el nombre de un paquete al hacer referencia a un componente, como en el ejemplo myPackage.myPart. Se tiene en cuenta el proyecto actual, así como los proyectos listados en la vía de acceso de construcción EGL.
En este caso, cada sentencia import hace referencia explícitamente a un componente concreto de un determinado paquete. El componente especificado en esta sentencia import de tipo explícito actúa como una alteración temporal del componente con el mismo nombre en el paquete actual.
Si tiene paquetes con nombres idénticos en dos proyectos distintos, una determinada sentencia import de tipo explícito utiliza la vía de acceso de construcción EGL para realizar una búsqueda de primera coincidencia, deteniéndose cuando se encuentra el componente necesario. (El componente debe ser exclusivo de un paquete de un determinado proyecto). La presencia de un paquete con el mismo nombre en dos proyectos distintos no es un error, pero crea una situación de confusión y no se recomienda.
Se produce un error si tiene dos sentencias import de tipo explícito que hacen referencia al mismo componente.
En este caso, cada sentencia import hace referencia a todos los componentes de un determinado paquete y se llama sentencia import de tipo comodín.
Si tiene paquetes con nombres idénticos en dos proyectos distintos, una determinada sentencia import de tipo comodín utiliza la vía de acceso de construcción EGL para realizar una búsqueda de primera coincidencia, deteniéndose cuando se encuentra el componente necesario. (El componente debe ser exclusivo de un paquete de un determinado proyecto).
Si más de una sentencia import de tipo comodín recupera el componente con el mismo nombre, se produce un error.
En este caso, cada sentencia import hace referencia explícitamente a un componente concreto de un determinado paquete. El componente especificado en esta sentencia import de tipo explícito actúa como una alteración temporal del componente con el mismo nombre en el paquete actual.
Si tiene paquetes con nombres idénticos en dos proyectos distintos, una determinada sentencia import de tipo explícito utiliza la vía de acceso de construcción EGL para realizar una búsqueda de primera coincidencia, deteniéndose cuando se encuentra la función necesaria. (La función debe ser exclusiva de un paquete de un determinado proyecto). La presencia de un paquete con el mismo nombre en dos proyectos distintos no es un error, pero crea una situación de confusión y no se recomienda.
Se produce un error si tiene dos sentencias import de tipo explícito que hacen referencia al mismo componente.
En este caso, cada sentencia import hace referencia a todos los componentes de un determinado paquete y se llama sentencia import de tipo comodín.
Si tiene paquetes con nombres idénticos en dos proyectos distintos, una determinada sentencia import de tipo comodín utiliza la vía de acceso de construcción EGL para realizar una búsqueda de primera coincidencia, deteniéndose cuando se encuentra el componente necesario. (El componente debe ser exclusivo de un paquete de un determinado proyecto).
Si más de una sentencia import de tipo comodín recupera el componente con el mismo nombre, se produce un error.
Cuando se invoca un programa en una sentencia call o transfer, la lista de argumentos del invocador debe coincidir con la lista de parámetros del programa invocado. Una discrepancia de argumento y parámetro produce un error.
Conceptos relacionados
Proyectos, paquetes y archivos EGL
Import
Introducción a EGL
Componentes
Referencias a variables en EGL