EGL - Notas de release


1.0 Software soportado y especificaciones
2.0 Limitaciones
   2.1 Programa de utilidad de conversión de I4GL a EGL: los valores 'null' no se establecen en las variables enlazadas al leer de un Formulario de consola
   2.2 Programa de utilidad de conversión de I4GL a EGL: Diferencia de tiempo de ejecución entre sentencias de bucle 'FOR de I4GL y EGL
   2.3 Programa de utilidad de conversión de I4GL a EGL: Los registros de pantalla referidos con la notación .* no se convierten adecuadamente
   2.4 Programa de utilidad de conversión de I4GL a EGL: las condiciones IF de I4GL (IF ! xxx o IF xxx) y las expresiones booleanas no están totalmente soportadas en EGL
   2.5 Formularios TUI: Utilización de la propiedad "validValuesMsgKey" con campos de formulario no numéricos
   2.6 Soporte de servicios Web: Las anotaciones XSD en elementos de datos, registros o elementos de registro solo se aplican a Interfaces
   2.7 Soporte de servicios Web: Tipos de archivo WSDL soportados
   2.8 Soporte de servicios Web: Ubicación de la biblioteca de enlaces de servicio creada por el asistente
   2.9 Depurador de EGL
3.0 Problemas conocidos
   3.1 Soporte de servicios Web: Errores al utilizar matrices multidimensionales como parámetros para proyectos J2EE 1.3
   3.2 Soporte de servicios Web: Errores al utilizar registros fijos con subestructuras como parámetros para proyectos J2EE 1.3
   3.3 Soporte de servicios Web: Errores al utilizar tipos de datos de hora o intervalo como parámetros para proyectos J2EE 1.3
   3.4 Soporte de servicios Web: Errores al generar elementos de datos EGL duplicados a partir de varios archivos WSDL
   3.5 Variables de sistema principal para el acceso a base de datos de Oracle
   3.6 Compilar archivos Jasper (.jrxml) en EG
   3.7 Aspectos de la migración

1.0 Software soportado y especificaciones

El editor de Opciones de construcción indica que WebSphere Application Server 5.1 es un tipo de servidor soportado. Sin embargo, solo están soportadas la versión 5.1.1 de WebSphere Application Server o versiones superiores.

2.0 Limitaciones

2.1 Programa de utilidad de conversión de I4GL a EGL: los valores 'null' no se establecen en las variables enlazadas al leer de un Formulario de consola

Descripción: Durante una ejecución de sentencia openUI de un formulario de consola los valores de retorno de las variables enlazadas no contendrán nunca un valor ?null?. En I4GL si no se especifica ningún valor en un campo de formulario, se devuelve un valor nulo.

Solución: si la aplicación comprueba específicamente una valor ?null? durante o después de una sentencia openUI en un formulario, la lógica deberá modificarse para comprobar un valor de serie vacío, en lugar de nulo.

2.2 Programa de utilidad de conversión de I4GL a EGL: Diferencia de tiempo de ejecución entre sentencias de bucle 'FOR de I4GL y EGL

Descripción: en I4GL, la sentencia ?for I = 0 to 1 by -1 ? implica la ejecución (0) veces del bloque de código de bucle for. En EGL, este mismo código de bucle producirá un bucle infinito y probablemente una excepción de entero fuera de límites o una excepción de desbordamiento de pila.

Solución: reescriba la sentencia for de EGL para que el bloque de código de bucle for se ejecute el número de veces deseado. También puede cambiar el bucle for por una sentencia while que ejecute el bloque de código el número deseado de veces.

2.3 Programa de utilidad de conversión de I4GL a EGL: Los registros de pantalla referidos con la notación .* no se convierten adecuadamente

Descripción: a veces, el programa de utilidad de conversión amplía los registros de pantalla a todas las columnas de la tabla incluso aunque solo se utilice un subconjunto de columnas para definir los registros de pantalla.

Solución: elimine los nombres de columna extraños de las sentencias de EGL convertidas.

2.4 Programa de utilidad de conversión de I4GL a EGL: las condiciones IF de I4GL (IF ! xxx o IF xxx) y las expresiones booleanas no están totalmente soportadas en EGL

Descripción: las condiciones IF en "IF ! xxx" o "IF xxx" lanzan errores de validación. Las expresiones booleanas no están soportadas en EGL y generan errores de validación.

Solución: el programa de utilidad de conversión convierte automáticamente estas funciones de IF dependiendo del contexto en el que se utilizan; esta limitación no afecta a la conversión de aplicaciones I4GL. Esto se documentada aquí para que los usuarios de I4GL puedan conocer el nivel de soporte de las condiciones IF al escribir aplicaciones nuevas en EGL.

Para expresiones booleanas, convierta el resultado booleano de una condición en un valor numérico de 0 ó 1.

2.5 Formularios TUI: Utilización de la propiedad "validValuesMsgKey" con campos de formulario no numéricos

Al utilizar el Editor de formularios de EGL o editar el código fuente de EGL a mano para un componente de formulario, se emitirá el mensaje de validación siguiente cuando se utilice la propiedad "validValuesMsgKey" con un campo de formulario cuyo tipo primitivo no sea numérico, por ejemplo char o db char:

IWN.VAL.5381.e 76/0 Propiedad: validValuesMsgKey. El valor de esta propiedad para el campo ... del formulario ... no es válido. La propiedad es una propiedad de elemento numérico.

Para utilizar esta propiedad con un tipo primitivo no numérico, se recomienda la solución siguiente:

  1. Abra el archivo que contiene el formulario con el Editor EGL. Pulse el archivo con el botón derecho del ratón y seleccione Abrir con > Editor EGL en la vista Explorador de proyectos.
  2. En lugar de especificar un tipo primitivo en la declaración del campo para el que se establece validValuesMsgKey, especifique un componente dataItem en la declaración del campo. El componente dataItem debe especificar el mismo tipo primitivo que el campo.

Por ejemplo, si el campo original se definió como:

ACTION char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //Esta línea debe tener el error IWN.VAL.5381 Cambie la definición del campo por:

ACTION charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //Esta línea no debe tener errores

En el mismo archivo, fuera de formGroup, teclee lo siguiente:
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end

2.6 Soporte de servicios Web: Las anotaciones XSD en elementos de datos, registros o elementos de registro solo se aplican a Interfaces

Anotaciones XSD aplicadas a definiciones de elemento de datos, definiciones de registro y declaraciones de elemento de registro que reflejan las facetas de tipo de datos de esquema XML que se encuentran en un archivo WSDL de servicio Web solo tienen significado cuando se utilizan en parámetros de función de interfaz y valores de retorno derivados de un archivo WSDL.

Ejemplo:

DataItem weekend string {@xsd {enumeration=["Saturday", "Sunday"] }} end // esto refleja la restricción WSDL sobre valores para weekend

Interface calander

public function weekendPlanner (weekendDay weekend in, . . .); // solo los valores de argumento Saturday y Sunday pueden enviarse a esta función de servicio Web

end

2.7 Soporte de servicios Web: Tipos de archivo WSDL soportados

El asistente Crear interfaces de EGL solo soporta archivos WSDL que sean RPC/Codificado, RPC/Literal y Documento/Literal (Envuelto). Los archivos WSDL que sean Documento/Literal (No envueltos) no están soportados.

2.8 Soporte de servicios Web: Ubicación de la biblioteca de enlaces de servicio creada por el asistente

El asistente Crear una biblioteca de enlaces de servicio a partir de un servicio EGL no copia archivos WSDL en un proyecto distinto. Si la Biblioteca de enlaces de servicio se crea en un proyecto distinto a aquel para el que se genera el servicio, el usuario debe colocar manualmente una copia de cualesquiera archivos WSDL a los que haga referencia la Biblioteca de enlaces de servicio en la ubicación indicada por el enlace Web.

2.9 Depurador de EGL

No puede utilizar el depurador de EGL para los programas que contienen informes. El soporte para esta función se proporcionará en una próxima actualización.

3.0 Problemas conocidos

3.1 Soporte de servicios Web: Errores al utilizar matrices multidimensionales como parámetros para proyectos J2EE 1.3

Los servicios generados como Servicio Web o Bibliotecas de enlaces de servicio con Enlaces Web generarán código Java con errores de compilación si las matrices multidimensionales se utilizan como parámetros o se definen en registros utilizados como parámetros en funciones de servicio o de interfaz cuando se generen para un proyecto Web con el nivel J2EE 1.3.

Service myService

function f1(param string[][][] in) // provoca errores de compilación cuando se genera como servicio Web para un proyecto Web con J2EE 1.3

. . .

end

end

Service myService

function f1(param string[] in) // se genera bien para un proyecto Web con J2EE 1.3

. . .

end

end

3.2 Soporte de servicios Web: Errores al utilizar registros fijos con subestructuras como parámetros para proyectos J2EE 1.3

Los servicios generados como Servicio Web o Bibliotecas de enlaces de servicio con Enlaces Web generarán código Java con errores de compilación si los registros fijos que contienen elementos de datos subestructurados o elementos de datos con apariciones > 1 se utilizan como parámetros o se definen en registros utilizados como parámetros en funciones de servicio o de interfaz cuando se generen para un proyecto Web con el nivel J2EE 1.3.

Ejemplo:

Record mySubstructuredRecord 10 item1 char(10); 20 item 2 char(10); end

Service myService public function f1(param mySubstructuredRecord in) // provoca errores de compilación cuando se genera como servicio Web para un proyecto Web con J2EE 1.3 . . . end end

Record myFlatRecord 10 item1 char(10); 10 item2 char(10); end

Service myService public function f1(param myFlatRecord in) // se genera bien para un proyecto Web con J2EE 1.3 . . . end end

3.3 Soporte de servicios Web: Errores al utilizar tipos de datos de hora o intervalo como parámetros para proyectos J2EE 1.3

Los servicios generados como un servicio Web o como Bibliotecas de enlaces de servicio con Enlaces Web con tipos de datos de hora o intervalo utilizados como parámetros o definidos en registros utilizados como parámetros en funciones de servicio o interfaz generadas para un proyecto Web con un nivel J2EE 1.3 lanzarán una excepción Java durante el tiempo de ejecución.

3.4 Soporte de servicios Web: Errores al generar elementos de datos EGL duplicados a partir de varios archivos WSDL

Al utilizar el asistente Crear interfaces EGL con dos o más archivos WSDL que contengan los mismos tipos de definición de esquemas XML en el mismo proyecto de EGL implicarán la creación de definiciones de datos de EGL duplicadas lo que provocará errores de validación de EGL.

3.5 Variables de sistema principal para el acceso a base de datos de Oracle

Si el programa de EGL accede a una base de datos de Oracle y utiliza una sentencia OPEN para abrir un conjunto de resultados, la cláusula SELECT de la sentencia OPEN no puede utilizar nombres de variable de sistema principal. Si se especifican los nombres de variable de sistema principal, no se establecen valores en el elemento correspondiente de la cláusula de utilización de la sentencia OPEN.

3.6 Compilar archivos Jasper (.jrxml) en EG

EGL proporciona un constructor que compila archivos JasperReport cada vez que se guardan. Si las aplicaciones de EGL incluyen manejadores de informes, asegúrese de que Java SDK 1.3.1 (o un nivel superior) esté en el sistema de desarrollo y de que el directorio bin de SDK se liste como parte de la variable de entorno PATH del sistema (es decir, C:\jdk1.3.1_14\bin). Si no tiene el Java SDK instalado, obtendrá el tipo de error siguiente al construir un archivo .jrxml: Error al compilar el archivo fuente java de informe.

3.7 Aspectos de la migración

Este paquete de renovación incluye varios cambios en la sintaxis de EGL anterior. Si ha creado componentes de EGL utilizando la Versión 5.1.2 o la Versión 6.0 de este producto, probablemente vea errores de validación para estos componentes después de instalar este paquete de renovación. Se proporciona una herramienta de migración simple para actualizar la sintaxis en los archivos fuente. Consulte la documentación de ayuda de EGL para obtener más información sobre la herramienta de migración de EGL V6.0.

Volver al archivo readme principal