Nota: Si utilizó una versión anterior de EGL para crear una aplicación Web basada en
JavaServer Faces, haga lo siguiente en el entorno de trabajo:
- Pulse Ayuda > Ayuda de Rational
- En el recuadro de texto Buscar del sistema de ayuda, teclee como
mínimo los caracteres iniciales de esta serie: Migrar recursos de JavaServer Faces en un
proyecto Web
- Pulse Ir
- Pulse Migrar recursos de JavaServer Faces en un proyecto Web y siga las instrucciones de
ese tema
La versión 6.0 aumenta la potencia del lenguaje
EGL:
- El proceso de bases
de datos relacionales ha mejorado
- Asistentes nuevos que permiten llevar a cabo rápidamente lo siguiente:
- Crear componentes de datos directamente de tablas de bases de datos relacionales
- Crear aplicaciones Web que crean, leen actualizan y suprimen filas de esas tablas
- Hay funciones de sistema nuevas disponibles:
- sysLib.loadTable carga información de un archivo y la inserta en una
tabla de base de datos relacional.
- sysLib.unloadTable descarga información de una tabla de base de datos
relacional y la inserta en un archivo.
- Si está generando código
Java puede
acceder a filas de base de datos SQL en un cursor navegando a la fila siguiente (como se ha hecho
siempre), navegando a la primera o última fila o a la fila anterior o actual o especificando una
posición absoluta o relativa en el cursor.
- La sentencia forEach permite recorrer fácilmente las filas de un
conjunto de resultados de SQL.
- La sentencia freeSQL libera los recursos asociados a una sentencia
SQL preparada dinámicamente, cerrando cualquier cursor abierto asociado con esa sentencia SQL.
- El proceso de series ha mejorado
- Puede declarar variables y elementos de estructura de tipos nuevos.
Los tipos numéricos
nuevos son los siguientes:
- FLOAT
- Hace referencia a un área de 8 bytes que almacena números de coma flotante de doble precisión
con 16 dígitos significativos como máximo
- MONEY
- Hace referencia a una cantidad de moneda almacenada como número decimal de coma flotante de 32
dígitos significativos como máximo
- SMALLFLOAT
- Hace referencia a un área de 4 bytes que almacena un número de coma flotante de precisión
simple con 8 dígitos significativos como máximo
Los tipos de fecha y hora nuevos son los siguientes:
- DATE
- Hace referencia a una fecha de calendario específica, representada en 8 dígitos de un solo byte
- INTERVAL
- Hace referencia a un intervalo de tiempo representado con entre 1 y 21 dígitos de un solo byte
y está asociado con una máscara como por ejemplo "hhmmss" para horas, minutos y segundos
- TIME
- Hace referencia a una instancia de hora, representada en 6 dígitos de un solo byte
- TIMESTAMP
- Hace referencia a una instancia de hora representada con entre 1 y 20 dígitos de un solo byte y
está asociada con una máscara como por ejemplo "aaaaMMddhh" para año, mes, día y hora
- La sintaxis proporciona opciones adicionales:
- Siempre puede hacer referencia a un elemento de una matriz de elemento de estructura de la
manera siguiente, pero en el caso de cambios de iFix, deberá evitar esta sintaxis:
mySuperItem.mySubItem.mySubmostItem[4,3,1]
Se recomienda
encarecidamente utilizar la sintaxis siguiente: mySuperItem[4].mySubItem[3].mySubmostItem[1]
- Puede utilizar una lista de identificadores delimitada por comas cuando declara parámetros,
entradas de sentencia use, entradas de sentencia set o variables como en este ejemplo:
myVariable01, myVariable02 myPart;
- En una expresión numérica, ahora puede especificar un exponente precediendo un valor con un
asterisco doble (**), de forma que (por ejemplo) 8 al cubo es 8**3
- Ahora puede especificar expresiones que se resuelvan cada una en fecha, hora, indicación de la
hora o intervalo y la aritmética de fechas permite hacer varias tareas, como por ejemplo calcular
el número de minutos entre dos fechas
- Las adiciones siguientes también permiten el proceso de fecha y hora:
- DateTimeLib.currentTime y
DateTimeLib.currentTimeStamp son variables del sistema que reflejan la
hora actual
- Las funciones de formato nuevo están disponibles para fechas
(StrLib.formatDate), horas (StrLib.formatTime)
e indicaciones de la hora (sysLib.TimeStamp)
- Cada una de las funciones siguientes permite convertir una serie de caracteres en un elemento
de un tipo de fecha y hora de forma que el elemento pueda utilizarse en una expresión de fecha y
hora:
- DateTimeLib.dateValue devuelve una fecha
- DateTimeLib.timeValue devuelve una hora
- DateTimeLib.timeStampValue devuelve una indicación de la hora
asociada con una máscara determinada como por ejemplo "aaaaMMdd"
- DateTimeLib.intervalValue devuelve un intervalo asociado a una
máscara determinada como por ejemplo, "aaaaMMdd"
- DateTimeLib.extendDateTimeValue acepta una fecha, hora o indicación
de la hora y la amplía a un elemento asociado a una máscara determinada, como por ejemplo
"aaaaMMddmmss"
- Puede utilizar estas sentencias generales nuevas:
- La sentencia for incluye un bloque de sentencia que se ejecuta en un bucle tantas veces
como una prueba de como resultado true. La prueba se realiza al principio del bucle e indica si el
valor de un contador está dentro de un rango especificado.
- La sentencia continue transfiere el control al final de una sentencia
for, forEach o while
que contiene la sentencia continue.
La ejecución de la sentencia continúa o finaliza dependiendo de la prueba lógica realizada al
inicio de la sentencia contenedora.
- Puede ejecutar un mandato del sistema de forma síncrona (emitiendo la función
sysLib.callCmd) o asíncrona (emitiendo la función
sysLib.startCmd). Estas funciones solo están disponibles cuando genera la salida
Java.
- Puede utilizar dos funciones nuevas que le permiten acceder a los argumentos de línea de
mandatos de un bucle
- sysLib.callCmdLineArgCount devuelve el número de argumentos
- sysLib.callCmdLineArg devuelve el argumento que reside en una
posición especificada de la lista de argumentos
Estas funciones solo están disponibles cuando genera la salida
Java.
- Ahora puede especificar una sentencia case en la que cada cláusula
estará asociada a una expresión lógica distinta. Si utiliza esta sintaxis nueva, el tiempo de
ejecución de EGL ejecuta las sentencias asociadas con la primera expresión verdadera:
case
when (myVar01 == myVar02)
conclusion = "bien";
when (myVar01 == myVar03)
conclusion = "hay que investigar";
otherwise
conclusion = "mal";
end
- Puede controlar si un parámetro de función se utiliza solo para entrada, solo para salida o en
ambos casos y puede evitar la opción aceptando el valor predeterminado, que es el valor no
restringido "for both".
- Ahora puede especificar una expresión de fecha y hora, de texto o numérica que sea más compleja
que un solo elemento o constante en los casos siguientes:
- Cuando especifica el valor proporcionado al sistema operativo por una sentencia
return
- Cuando especifica un argumento que se pasa a una invocación de función o a una llamada de
programa; sin embargo, las características del parámetro de recepción deben conocerse durante la
generación
- Ahora puede especificar una expresión numérica compleja al salir del programa
El entorno de desarrollo también ha mejorado:
- Hay dos características nuevas que proporcionan la posibilidad de acceder rápidamente a
componentes, incluso conforme va aumentando la complejidad del código:
- La vista Referencia de componentes permite visualizar una lista jerárquica de los componentes
de EGL a los que haga referencia un programa, una biblioteca o un manejador de páginas y, desde esa
lista, puede acceder a cualquiera de los componentes a los que se hace referencia
- El mecanismo de búsqueda de EGL permite especificar un criterio de búsqueda para acceder a un
conjunto de componentes o variables en el área de trabajo o en un subconjunto de los proyectos
- Finalmente, la perspectiva Web de EGL se ha eliminado en favor de la perspectiva Web
ampliamente utilizada.
Conceptos relacionados
Migración de EGL a EGL
Fuentes de información adicional acerca de EGL
Novedades del iFix de EGL 6.0