Las propiedades de los componentes de programa varían en función de si el programa es llamado o principal y, si es principal, de si el programa es de tipo
o de UI de texto. Las propiedades son las siguientes:
- alias = "alias"
- Una serie que se incorpora a los nombres de la salida generada. Si no establece la propiedad alias, en su lugar se utiliza el nombre del componente programa (o una versión truncada).
La propiedad
alias está disponible en cualquier programa.
- allowUnqualifiedItemReferences = no, allowUnqualifiedItemReferences
= yes
- Especifica si debe permitirse al código omitir calificadores de contenedor y
subestructura al hacer referencia a elementos de estructuras.
La propiedad
allowUnqualifiedItemReferences está disponible en cualquier
programa.
- Observe el siguiente componente de registro, por ejemplo:
Record aRecordPart type basicRecord
10 myItem01 CHAR(5);
10 myItem02 CHAR(5);
end
La variable siguiente se basa en ese componente:
myRecord aRecordPart;
Si acepta el valor por omisión de
allowUnqualifiedItemReferences (
no), debe especificar el nombre de registro al hacer referencia a myItem01, como en esta asignación:
myValue = myRecord.myItem01;
Si establece la propiedad
allowUnqualifiedItemReferences en
yes,
sin embargo, puede evitar especificar el nombre de registro:
myValue = myItem01;
Es aconsejable aceptar el valor por omisión, que promueve una mejor praxis. Al especificar el nombre del contenedor, se reduce la ambigüedad de cara a los usuarios que leen el código y de cara a EGL.
EGL utiliza un conjunto de normas para determinar el área de memoria a la que un nombre de variable o de elemento hace referencia.
Para obtener detalles, consulte el apartado Referencias a variables y constantes.
- handleHardIOErrors = yes, handleHardIOErrors
= no
- Establece el valor predeterminado para la variable del sistema
VGVar.handleHardIOErrors.
La variable controla si un programa continúa ejecutándose después de que se haya producido un error
grave en una operación de E/S en un bloque try. El valor predeterminado de la propiedad es
yes, que establece la variable en 1.
El código migrado desde
VisualAge
Generator no funcionará como antes a menos que establezca
handleHardIOErrors en no, lo que establece la variable en 0.
Esta propiedad está disponible en cualquier programa.
Para obtener más detalles, consulte VGVar.handleHardIOErrors y Manejo de excepciones.
- includeReferencedFunctions = no, includeReferencedFunctions
= yes
- Indica si el programa contiene una copia de cada función que o se encuentra dentro del programa ni en una biblioteca a la que éste accede.
La propiedad
includeReferencedFunctions está disponible en cualquier programa.
- El valor por omisión es no, lo que significa que puede pasar por alto esta propiedad si realiza las siguientes prácticas durante el desarrollo, como se aconseja:
- Coloque las funciones compartidas en una biblioteca
- Coloque las funciones no compartidas en el programa
Si utiliza funciones compartidas que no están en una biblioteca, la generación sólo es posible si establece la propiedad includeReferencedFunctions en yes.
- inputForm = "nombreFormulario"
- Identifica un formulario que se presenta al usuario antes de que se ejecute la lógica del programa, como se describe en el apartado Formulario de entrada.
La propiedad
inputForm sólo está disponible en programas principales de UI de texto.
- inputPageRecord = UIRecord
- Identifica un registro de UI que un programa de acción recibe del sometimiento de una página Web del usuario.
Existen dos casos:
- La página Web ha sido presentada por una sentencia forward con una cláusula returning, y el usuario ha sometido la página Web para satisfacer la finalidad de esa sentencia.
- Como alternativa, puede que no esté implicada una sentencia forward con una cláusula returning; en cualquier caso, el usuario un botón de la página Web o un enlace hipertexto para invocar a un programa EGL y someter los datos del registro de UI a ese programa.
Un elemento del registro de UI de la página Web debe tener el mismo nombre y tipo
que el elemento correspondiente del registro identificado por la propiedad
inputPageRecord.
Los datos no se colocan en la propiedad
inputPageRecord en estos casos:
- Una sentencia forward invoca el programa con un conjunto de argumentos en lugar de con un registro de UI; o
- La página Web ha sido presentada por una sentencia converse y el usuario ha sometido la página Web para devolver la sentencia siguiente en el mismo programa.
La propiedad inputPageRecord sólo está disponible en programas de acción.
Para obtener más detalles, consulte el apartado forward.
- inputRecord = "registroEntrada"
- Identifica un registro básico global que un programa inicializa automáticamente y que
puede recibir datos de un programa que utiliza una sentencia
transfer para transferir el control. Para obtener más detalles, consulte el apartado Registro de entrada.
La propiedad inputRecord está disponible en un programa principal.
- localSQLScope = yes, localSQLScope
= no
- Indica si los identificadores para los conjuntos de resultados SQL y las sentencias preparadas
son locales para el programa, lo que constituye el valor predeterminado. Si acepta el valor
yes, los programas distintos pueden utilizar independientemente los mismos
identificadores.
Si especifica no, los identificadores se comparten en toda la unidad de
ejecución. Los identificadores creados en el código actual están disponibles en cualquier parte,
aunque otro código puede utilizar localSQLScope = yes para bloquear el
acceso a esos identificadores. Además, el código actual puede hacer referencia a identificadores
creados en cualquier parte, pero solo si el otro código ya se ha ejecutado y no ha bloqueado el
acceso.
Los efectos de compartir identificadores SQL
son los siguientes:
- Puede abrir un conjunto de resultados en un programa y obtener filas de ese conjunto en otro
- Puede preparar una sentencia SQL en un programa y ejecutar esa sentencia en otra
La propiedad localSQLScope está disponible en cualquier
programa.
Si está generando la salida COBOL, no puede establecer la
propiedad en no; los identificadores siempre son locales.
- msgTablePrefix = "prefijo"
- Especifica el primero de los cuatro caracteres del nombre de la tabla de datos utilizada como tabla de mensajes para el programa. Los demás caracteres del nombre corresponden a uno de los códigos de idioma nacional listados en el apartado Componente DataTable en formato fuente EGL.
La propiedad msgTablePrefix está disponible en cualquier programa básico o de UI de texto.
Los programas que se ejecutan en
aplicaciones Web no utilizan ninguna tabla de mensajes, pero utilizan un recurso de mensajes
JavaServer Faces. Para obtener detalles acerca de ese recurso, consulte la descripción de la propiedad
msgResource en los siguientes apartados:
- Componente PageHandler en formato fuente EGL
- Componente de registro de UI en formato fuente EGL
- segmented = no, segmented = yes
- Indica si el programa está segmentado, como se describe en el apartado Segmentación.
El valor se establece siempre en yes en los programas de acción, y el valor por omisión es no en los programas principales de UI de texto.
La propiedad no es válida en otros tipos de programas.
- throwNrfEofExceptions = no, throwNrfEofExceptions
= yes
Especifica si un error leve provoca el lanzamiento de una excepción. El valor predeterminado
es no. Para obtener información, consulte la sección Manejo de excepciones.