Está en la página 1de 19

Generador Java 7.

Introducción
Este documento describe las nuevas funcionalidades implementadas y los errores corregidos en los
diferentes upgrades de la versión 7.0 del generador Java. También se detallan los puntos a tener en
cuenta para su instalación.

Cada nuevo upgrade incluye lo del upgrade anterior, por lo que no es necesario instalar cada uno de
ellos, con el último es suficiente.

Puntos a tener en cuenta


En cada uno de los upgrades se han realizado algunos cambios que implican realizar determinadas
acciones para el correcto funcionamiento de las aplicaciones generadas con versiones anteriores una vez
aplicado el upgrade:

• Cambiaron las clases estándar GeneXus


Si se utiliza el SDK de Microsoft, no permitirá generar ni compilar correctamente algunos objetos,
presentándose mensajes de error del tipo:
error J0049: Undefined name '<alguna clase>'

Este problema se presenta solo si se había ejecutado como applet desde el Internet Explorer una
aplicación GeneXus generada con la versión anterior. En este caso habrá un conflicto entre las clases
estándar GeneXus que se instalan automáticamente en el Internet Explorer al ejecutar un applet
GeneXus y las clases que se distribuyen con el upgrade 1.

Para solucionar esta incompatibilidad existen dos posibilidades:


1. Ir al directorio Windows\Downloaded Program Files, posicionarse sobre “Genexus Java
Standard Classes”, presionar el botón derecho y seleccionar “Remove”.
2. Generar algún objeto cualquiera, y antes de compilar ejecutarlo como applet. Probablemente la
aplicación no funcione correctamente, pero se actualizarán las clases standard GeneXus con las
de la nueva versión del generador.

• Cambiaron las GXDB++


Las clases de acceso a la base de datos (GXDB++) generadas con versiones anteriores son
incompatibles con las generadas por esta versión (upgrade 1) del generador. Como los programas
generados utilizan estas clases, existirán conflictos entre ellos y las gxdb++ generadas con versiones
anteriores.

Para solucionar esta incompatibilidad es necesario regenerar las gxdb++, lo cual se realiza corriendo un
“Create Database”. Si no se desea crear la base de datos física, se recomienda utilizar la preference
“Reorganize Server Tables” = No .

Nota: Esto implica que no se puede instalar el generador si se tiene alguna reorganización pendiente,
dado que al regenerar las GXDB++ se actualizará el modelo.
UPGRADE #3

Nuevas Funcionalidades

• Claves de encriptación en archivo diferente al client.cfg y server.cfg


Se implementó una forma de dejar grabadas las claves de encriptación en un archivo diferente al
client.cfg y server.cfg. Este archivo es el crypto.cfg
Cuando se desea poder cambiar las claves de encriptación desde fuera de GeneXus se puede utilizar el
utilitario com.genexus.PasswordChanger. En ocasiones además se requiere que éstas queden en un
archivo diferente al client.cfg/server.cfg. Si existe un archivo que se llama crypto.cfg en el _mismo
directorio_ que el client.cfg/server.cfg, entonces se usan las claves de este archivo.

El archivo debe tener el siguiente formato:


[Encryption]
SiteKey=7E2E22D26FF2989E2444852A85E57866

donde sitekey es una clave válida.

Esta clave también la usa el com.genexus.PasswordChanger por lo que es posible cambiar el user-
password con ese utilitario respetando la clave.

• Nueva función para el manejo de FTP: GXFtpDelete


Se agregó a las funciones de ftp existentes la función gxftpdelete que permite borrar un archivo del
servidor FTP. La sintaxis es la siguiente:
call(gxftpdelete, &Archivo)

• Cambios en ServerConfig para manejo del pool y Logging


Se implementaron nuevas funcionalidades con respecto a las conexiones en 3 capas y al manejo de
niveles de logs. La especificación de la misma se realiza en el utilitario de configuración del servidor de
aplicaciones GeneXus: ServerConfig

Recycle connections
Se soporta una nueva funcionalidad en los pools de conexiones denominada 'Recycle connections' que
puede ser habilitada o no.

Si se marca, se le puede especificar cada cuantos minutos puede reciclar esa conexion. La idea es
cuando pase ese tiempo de que la conexion se creó, en el momento en que esté en un estado
'desconectable', se desconecta del pool, y al usuario se le da otra conexion del pool. 'Estado
desconectable' es sin commits pendientes ni cursores abiertos en las R/W y sin cursores abiertos en las
R/O. El objetivo de esta feature es evitar que una conexion este abierta 'para siempre'.
JDBC Log Configuration
Se agregó el tab 'JDBC log configuration' al form de 'namespaces' del ServerConfig. Se pasó la parte de
configuración JD BC a un tab propio.

En el tab se piden los siguientes datos:


* Log JDBC Activity: Checkbox que indica si se quiere habilitar el log o no.

* Enable buffering: Hoy el log es 'unbuffered', lo que implica que es muy lento generar log. Si se pone
'buffered' es mas rapido pero como no se graba 'enseguida', si se consulta un log mientras se esta
ejecutando la aplicacion, el log va a estar incompleto. Tambieén puede quedar truncado si la aplicacion
cancela con una excepcion no manejada por el programa.

* Log Detail : Combo con valores High y Low. Indica en nivel de detalle del log. Con nivel 'high' de
detalle el tamaño del log queda mucho mas grande que con nivel 'low'

* Log Level : Combo con valores Namespace/Datastore/Connection. Permite crear un archivo de log por
namespace, o uno por cada datastore o uno por cada conexion. Es util para que se mas facil entender el
camino de ejecucion de una aplicacion.

* Use unique name : Indica si se quiere que el nombre del archivo se genere automaticamente o si se
quiere usar uno 'fijo'. Si es automatico, se pide el directorio donde se quiere guardar los logs. Si es fijo,
se guarda siempre en el mismo. Los nombres automaticos son de la forma "gx_" + MMDD + "_" +
HHMMSS + <namespace> + "_" + <datastore> + "_" + <conexion> + ".log" (si se elige log level =
conexión se ponen todos, sino solo hasta datastore o namespace respectivamente).

• Reportes en el servidor
Se soporta la ejecución de reportes en el servidor y visualizarlos en el cliente. Para ésto se
implementaron las siguientes funciones:

- getremotefile(&ServerFile, &LocalFile)
Copia un archivo del servidor al cliente

- opengxreport(&FileName)
Abre un .GXR

El usuario GX debe programarlo de la siguiente forma;

Sea RReport el reporte que se desea correr en el server, entonces debe tener:
- la property 'Report output' seteada con el valor 'to file'
- la regla output_file(&FileName)
- debe ser remoto, o sea main y un location especificado

En el objeto llamador, en el cliente, se debe programar lo siguiente:

call(RReport, &FileName )

// Traer el archivo del server al cliente


&a = getremotefile(&FileName, "report.gxr")

// Abrir el reporte
&a = opengxreport("report.gxr")

// Borrar el archivo
&a = deletefile("report.gxr")

Nota:
Para poder utilizar estas funciones se debe especificar la preferencia FUNCTIONS con el valor “Allow non-
standard funcionts” tanto en el modelo de diseño como en prototipo/producción.

• Cambios en el 'GeneXus Application Monitor'


Se implementó lo siguiente en el 'GeneXus Application Monitor':

En el pool read-only se pone la cantidad de usuarios que están usando la conexión (corresponde al valor
de configuración de cantidad de usuarios por conexión)

En el pool read-write se pone el tiempo que hace que la conexión esta esperando la ejecución de una
sentencia. La idea es poder identificar que una conexión quedo loqueada.

Errores Corregidos
• SAC #7448: El Gx Serv Aplic. no genera log JDBC a nivel de NAMESPACE
El Servidor de Aplicaciones GeneXus no genera logs JDBC por cada NAMESPACE que se tiene configurado
sino uno a nivel del servidor de aplicaciones, es decir el mismo para todos ellos.

• SAC #9242: No anda el Click en líneas del subfile en trn 2 niveles


No es posible posicionarse con el mouse sobre la nueva línea de un subfile en una transacción de 2
niveles, sino solo es posible llegar a partir de 'tabs'.

• SAC #10274: Problemas de interfaz con VM de Sun


Se detectaron y corrigieron algunos problemas de interfaz cuando se ejecuta con la máquina virtual de
Sun. Por ejemplo los labels tipo 'p', 'q' aparecen mal en la parte baja (están cortadas).

• SAC #10298: 'Create all pool connections at startup' no funciona bien


No está funcionando correctamente el manejo de pools cuando la preference 'Create all pool connections
at startup' esta en YES. Si bien estaba creando las conexiones al levantar el servidor, no quedaban
asignadas a ningún pool, por lo que al solicitar un cliente una conexión (read/only o read/write), estaba
creando una nueva conexión para asignársela en vez de reutilizar.

• SAC #10359 Problema con reorganización


Si en una misma reorganización se crea un índice ascendente y descendente por los mismos atributos en
una tabla, se pierden los datos de la misma al ejecutarla.

• SAC #10365 Conflicto en la carga de imágenes en web panels java


Al ejecutar un web panel, esta cargando las imágenes de otro directorio en vez de su Static Content
URL. Las imágenes que carga son las correspondientes a otra aplicación web que fue cargada
previamente.

• SAC #10379 El DW no esta agregando el stub de un proc main


El deployment wizard no esta agregando el stub de las procedimientos (p*.class) y reportes mains
(r*.class). Esto hace que al ejecutar la aplicación instalada a partir del deployment, fallará al ejecutar el
procedimiento o reporte main.

• SAC #10383 Problemas con updates en procs con READ UNCOMMITED = NO


Se tiene en una aplicación que utiliza el pool de conexiones (3 capas o web ) un procedimiento que hace
un update y una lecutra, y tiene la property READ UNCOMMITED = NO. Al llamarlo se caia la aplicación.

• SAC #10386 no funciona {{Pages}} si se manda directamente a impresora


Se tiene un reporte en el que se desa imprimir una leyenda del estilo Pagina X de Y. Para el "Y" se usa
un label que contiene {{Pages}}. El problema es que si se imprime directamente a impresora (sin pasar
entremedio por el viewer) imprime 1 de 1, 2 de 2, etc.

• SAC #10391 Problema en el manejo de conexiones en 3 capas


Se daba un problema en el manejo de conexiones, que implicaba que si se tenia un call a un stored
procedure, y el stored procedure quedaba loqueado, nadie podía trabajar en todo el servidor de
aplicaciones.

• SAC #10394 Se genera log del GxAppSrv a pesar de estar deshabilitado


Si en el Server Config del application server se tiene deshabilitado el log (check desmarcado), pero con
un nombre de log especificado, igualmente el mismo se genera.

• SAC #10417 Error en load de subfile free anidado a otro


Se presenta un error al compilar un web panel que contiene subfile freestyles anidados y un evento load
para el segundo de ellos (sbf2.load).

• SAC #10422 El GXMSend contra SMTP no se dispara mas que una vez
El GXMSend de la implementación de las funciones de mail en java contra SMTP no se dispara mas que
una vez en la aplicación.

• SAC #10431 No ordena en forma correcta al hacer click sobre columna


Se tiene un work panel con un subfile. En el subfile hay muchos registros (mas de 500). Al hacer click
sobre una de las columnas del subfile para ordenar los registros los mismos no quedan ordenados en
forma correcta.

• SAC #10462 Evento llamado solo con tecla de funcion se ejecuta 2 veces
Cuando se llama a un evento de un work panel con una tecla de función (por ejemplo F6), y el mismo no
esta llamado de otro lado, entonces se ejecuta 2 veces.

• SAC #10465 Variable &mode en evento after TRN ejecutando en tres capas
Si se pregunta por la variable &mode en el evento “after TRN” en un transacción y ejecutando en tres
capas y se está en modo delete, la variable retorna vacío en lugar de retornar 'DLT'.

• SAC #10466 Dispara reglas que no corresponde en TRN 3 capas.


Se tiene una transacción de dos niveles ejecutándose en tres capas. Se tienen reglas que se deben
ejecutar cuando se ingrese o se modifique un registro del segundo nivel. El problema es que cuando se
ingresa o se modifica el cabezal y no se realiza acción alguna en las líneas, de todos modos se disparan
las reglas correspondientes al segundo nivel.

• SAC #10499 Problema con picutre @! en un att/var carácter


Problema con picutre @! en un att/var character. Al digitar caracteres con tilde, estos aprecen con
minúsculas.

• SAC #10526 Problema con función ttoc() con formato 24 horas


Se quiere utilizar la función ttoc() en un modelo con formato 24 horas. Cuando el time a convertir tiene
la hora 0, por ejemplo 00:30; la función lo convierte a la hora 24, en este caso 24:30

• SAC #10533 No compila wkp con load dentro de un xfor each


Si se tiene un work panel con un subfile que carga variables en el evento load mediante un xfor each y
el comando load, el mismo fallaba al compilarlo.

• SAC #10566 Problema con función AGE


Cuando se utiliza la función AGE con una fecha no mayor a un año del today() esta retornando 1 en
lugar de 0.

• SAC #10567 Problemas en TRN dos niveles en tres capas


Se tiene una transacción de dos niveles en tres capas. Estando en el segundo nivel el cursor se posiciona
en una nueva línea. Al confirmar la transacción se intenta validar la línea en donde esta el cursor (que
no tiene nada ingresado).

• SAC #10577 No funcionan parametros DateTime con Time Format 12 horas


Cuando se tiene Time Format = 12 hour format (es el default cuando el lenguaje del modelo es Ingles),
no funcionan los parametros de tipo Datetime. El valor que se esta recibiendo en el objeto llamado es el
datetime nulo.

• SAC #10588 Error al oprimir 'delete' en nueva linea en trn 2 niveles


En una transacción de dos niveles, si se estao posicionado en el subfile en una línea nueva y se presiona
el botón delete se presenta un error del tipo java.lang.ArrayIndexOutOfBoundsException: 1 >= 1

• SAC #10801 [SQL0508] Cursor XXXX not positioned on locked row


Si se tiene un for each que hace updates en dos tablas (DB2/400), y no existian registros en alguna de
ellas, entonces se presenta un error del tipo "Cursor XXXX not positioned on locked row" al ejecutarlo.

• SAC #11004 Error al acceder via POP3 para bajar mails con attachment
Al acceder via POP3 para bajar mails con attachment se presentaba un error del tipo
"java.lang.NullPointerException at java/lang/String.startsWith" cuando estos eran enviados de
programas de mail particulares, por ejemplo pasaba con el Lotus Notes.

• SAC #11024 Numéricos quedan mal grabados por funciones manejo de texto
Si utilizando las funciones de manejo de texto (dfwopen, dfwpnum, dfwnext) se graban en un archivo de
texto campos numericos de una tabla, no quedan bien grabados los valores de los mismos.

• SAC #11091 Funcion TRUNC de un negativo no funciona correctamente


La funcion TRUNC(-1,5,0) devuelve -2 cuando debería devolver –1.

• SAC #11359 Problema de loqueo en aplicaciones 3 capas


En determinadas ocasiones una aplicación que ejecuta en 3 capas se cae. El problema que lo causaba es
estaba loqueando con una conexión y se intentaba actualizar con otra.
UPGRADE #2

Nuevas Funcionalidades

• Protocolo FILE:// para llamar al GXWS


Se soporta el Protocolo FILE:// para llamar al GXWS. Con esta nueva implementación, si se da doble
click sobre el .html generado por el GXWS deployment, entonces se va a llamar al browser, pero
referenciándolo a través del protocolo FILE://

• Nueva opcion en el GXWS: Se tup – Settings


Las opciones del GXWS como ser lenguaje, habilitación para generar logs, etc se debían setear editando
el APPLICATIONS.INI

A partir de la beta 3 de la solis (y también estará en el upgrade 2 de la 7.0) en el GXWS se cuenta con
una nueva opción en su menu: Setup – Settings, donde se puede habilitar estas opciones.

• Se soporta especificar el PORT ademas del HOST para RMI


Para aplicaciones en 3 capas con RMI, se soporta el poder especificar el PORT además del HOST.

La forma de hacerlo es en la preference 'Name Server Host', para RMI, se pone servidor:puerto. De esta
forma se puede levantar mas de un servidor de aplicaciones en el mismo equipo, incluso estos
servidores de aplicaciones pueden ser de distintas versiones.

Si no se especifica puerto, el puerto es 1099 como hasta ahora.

• Usuario y password encriptados en los .cfgs


Es posible encriptar el usuario y password de los archivos de configuración (.cfg)

Existe un utilitario con el generador llamado PasswordChanger que permite encripta r el usuario y
password en los .cfg

La manera de utilizarlo es la siguiente:


Poner en el classpath el gxclassr.zip
Llamarlo de la siguiente forma:

jview com.genexus.PasswordChanger

-file:<filename> (por defecto, client.cfg)


-namespace:<namespace> (por defecto 'default')
-datastore:<datastore> (por defecto 'DEFAULT')
-user:<user> (requerido)
-password:<password> (requerido)

Notas:
-El generador no encripta el usuario y password por defecto en tiempo de generación.
-El utilitario ServerConfig encripta el usuario y password.
-Si se quiere desencriptar el usuario y password basta con editar el cfg y cambiarlos.

• Nueva preference 'Server port for RMI Objects'


Se implementó una nueva preference llamada "Server port for RMI Objects"
La misma permite definir el puerto en el que se crean los objetos RMI en el servidor. De esta forma se
abre solo ese puerto en el firewall además del 1099 que es donde escucha por defecto el servidor de
aplicaciones GeneXus.

• Cambios en la implementación del Pool READ-ONLY


Se hicieron algunos cambios en relación al comportamiento del pool read-only, basicamente:

Ø Cuando una conexion read-only da un error, se saca la conexion del pool, y se cierra (en
realidad no se cierra enseguida, se cierra cuando algun otro usuario pide una conexion). Esto
implica que los usuarios que la estuvieran usando van a recibir un error, pero que cuando se
conecten de nuevo obtendran otra conexion y seguiran trabajando.

Ø Se agrega una preference 'Maximum clients per read-only connection (default=10)' que
se graba en el .cfg con la clave 'PoolROUsers'. Indica la cantidad de usuarios finales entran en
un misma conexion read-only. Esto permite limitar la cantidad de usuarios que van a caer
cuando haya un error en una conexion. Por ej, si se deja '10', entonces solo van a caer 10
usuarios cuando a uno le de un Internal Driver Error. Se agrega esta preference tambien en el
ServerConfig.

Ø El default del tamaño del pool read-only paso de '1' a infinito, para que funcione bien con el
default de la preference anterior.

• Nueva opción "Using Visibroker" para preference "distributed execution"


Se agregó una nueva opcion "Using VisiBroker" para la preference "distribute execution".
Esta opcion es solo válida si se va a utilizar VisiBroker 4.x o superior.

Utilizando esta opción ya no es necesario "levantar" el nameserv; por lo cual solo alcanza con "levantar"
el osagent y colocar en el classpath del cliente y del servidor el archivo vbjorb.jar

A su vez ejecutando con la VM de sun ya NO es necesario indicar en la command line por medio de
properties que se va a utilizar VisiBroker

• Nueva preference "Custom name for CORBA server"


Se agregó la preference "Custom name for CORBA server" en la parte "Distributed Execution".
Seteando esta preference se pueden "levantar" N servidores CORBA de la misma versión de GeneXus
por PC.

Errores Corregidos

• SAC #7827 Error al usar &var = &var + udf()


En una asignación, si se usa la misma variable en el operando de la derecha y de la izquierda, el
resultado no era correcto. Por ejemplo si en el objeto GeneXus se programa
&var = &var + udf(pprocedimiento)

• SAC #8231 Error al tocar la 'scroll bar'


Al tocar la 'scroll bar' de un work panel, ejecutando con WFC, aleatoriamente se presentaba el siguiente
error:
com.ms.wfc.core.WFCInvalidArgumentException: '11' no es un valor válido para 'value'. 'value'
debe estar comprendido entre 'minimum' y 'maximum'.
at com/ms/wfc/ui/ScrollBar.setValue (ScrollBar.java)

• SAC #8921 Imagen con evento asociado en Web Panel tiene borde en NS
Si se tiene una imagen a la que se seteó la propiedad Borderwidth con valor 0 y se le asocia un evento
clic, al ejecutar el Web Panel con Netscape, la imagen se visualizaba con borde.

• SAC #9095 error J0235: 'setTitle' is not a method in class 'IChoice'


En un subfile se tiene una columna con un control de tipo combobox y otra con un control de tipo
checkbox. Si sobre dichas columnas se utiliza la propiedad Title (control.Title = '<algo>'), en tiempo de
compilación se presentaban los siguientes errores:
error J0235: 'setTitle' is not a method in class 'IChoice'
error J0235: 'setTitle' is not a method in class 'ICheckbox'

• SAC #9242 No funciona el Click en líneas del Subfile en transacción de 2 niveles


No era posible posicionarse con el mouse sobre la nueva linea de un subfile en una transacción de 2
niveles.

• SAC #9342 GPF al ejecutar wkp con tabdialogs y subfile en uno de ellos
Si se tiene un work panel con tabdialogs, y un subfile en uno de ellos, al ejecutarlo con JVIEW daba un
error de tipo GPF.

• SAC #9353 Propiedad IsPassword no funciona si el control es read-only


Si un control edit es Read-Only no funcionaba la propiedad IsPassword. En particular si el control es de
ingreso y luego en un evento se utiliza la propiedad Enabled=0, el contenido de la variable
recientemente ingresada quedaba visible.

• SAC #9415 Solo muestra 'Compilation failed' sin mas detalles


Al fallar la compilación, no muestra los mensajes de error del compilador, sino tan solo el mensaje
'Compilation failed'. El problema se da cuando se tiene instalado y habilitado el antivirus Norton 2000.
Deshabilitándolo ya es posible visualizar los mensajes de error del compilador.

• SAC #9453 Problemas con funciones que reciben un host por parámetro
Las funciones que reciben un host por parámetro no están funcionando en forma adecuada cuando el
parámetro es pasado por una variable o atributo. Por ejemplo, en el siguiente caso no estaba enviando
el mail:
&Servidor = ‘hostname’ o att con el nombre del host
&error = gxMLoginSMTP(&Servidor, &Nombre, &Direccion ),

• SAC #9492 En GXWS Dep: java.lang.StringIndexOutOfBoundsException: -1


Cuando en el Deployment Wizard no se le especificaba un lugar donde transferir los paquetes, esto es
marcar el 'Transfer location files' para el location 'client', entonces se presentaba el siguiente error en el
Genexus Web Start Deployment:

java.lang.StringIndexOutOfBoundsException: -1

• SAC #9520 Se borra integridad referencial.


Cuando se tiene "Declare Referential Integrity" en "YES", algunas reorganizaciones no mantenían la
integridad referencial entre algunas tablas del modelo.

• SAC #9547 No carga listbox al hacer refresh


Se tiene un listbox que se carga en el OnlineActivate de un subfile. Si sobre el subfile existe un filtro, al
cargar el subfile no se cargaba el listbox, mientras que si no existe filtro sobre el subfile lo hace en
forma correcta.

• SAC #9564 Error al borrar registro sobre dataview.


Se define un dataview sobre un data store distinto del "Default" y luego se define un procedimiento que
realiza un delete optimizado sobre la tabla definida en el dataview, en tiempo de ejecución se producía
un error.

• SAC #9571 Error en GXWS Dep.: 'Unexpected end of ZLIB input stream'
Cuando se agregaba como dependency un .JAR que pudiera estar corrupto, al generar el .jar (build) con
el GXWS Deployment se presentaba el siguiente error:

java.io.EOFException: Unexpected end of ZLIB input stream

• SAC #9613 El GXWS no esta solicitando USER/PASS en el caso que debería


Se presentaba un error al ejecutar, debido a que la aplicación está en un directorio con permisos en el
web server y el GeneXus Web Start no estaba solicitando usuario y password cuando debía hacerlo.
• SAC #9614 Error 'java.lang.Exception: 'depend.zip' cannot be delete'
Cuando se tiene un 'dependency' (.zip/.jar) agregado en el GXWS Deployment, que se encuentra en el
directorio del modelo, se presentaba el siguiente error al armar el .jar de la aplicación:
'java.lang.Exception: 'depend.zip' cannot be delete'

• SAC #9619 Alto consumo de %CPU ejecutando con VM de Microsoft


Al ejecutar un work panel que llama a otro work panel 'modal', con la VM de Microsoft (wjview.exe) y
WFC, el %CPU utilizado pasaba al 99%.

• SAC #9620 La aplicación se 'cuelga' trabajando en una transacción


La aplicación deja de responder si se está trabajando en una transacción que manda los mensajes a la
standard output en vez de a la status bar, cuando la misma es llamada desde el GeneXus Web Start.

• SAC #9640 Problemas con función VAL sobre valores con exponente
Se tiene un string que representa un valor con exponente; por ejemplo "1.234234E6". Al utilizar la
función val sobre dicho string el valor retornado no era correcto; en el ejemplo anterior retornaba
1.234234

• SAC #9662 Problema en ejecución debido al pool read-only de conexiones


Se estaba contando mal la cantidad de cursores abiertos para el pool read-only, por lo que podía pasar
que se llegara al límite de 'maximum open cursors per connection' y se intentara seguir abriendo
cursores en esa conexión.

• SAC #9663 Error en la función STR(0.012345, 10, 6)


La función STR(0.012345, 10, 6) debería devolver: 0.012345 y en java devuelve: 012345

• SAC #9664 Underline' de texto en wkp no aparece en ejecución


La propiedad 'Underline' para texto de un work panel, cuando se especifica en diseño, no es tomada en
cuenta, por lo que en ejecución no aparecía el texto subrayado.

• SAC #9667 Error al generar GXWS Deployment cuando se tiene bitmaps


Cuando se agregaban imágenes (.bmp's) con el botón 'add images', al dar 'build' en el GXWS
Deployment se presentaba un error y no lo generaba. Además estaba borrando los bitmaps del directorio
del que se toman.

• SAC #9677 Problema con edit sobre tabdialog con picture ZZZZZZ Z9
En una transacción, si se tiene un atributo de tipo N(8) y picture 'ZZZZZZ Z9', es decir con mas
caracteres que el tamaño del tipo, al editarlo tiene un comportamiento extraño.

• SAC #9680 Se cuelga el F5 compilando el 'Create database'


En algunas máquinas se cuelga GeneXus al compilar los programas de reorganización.

• SAC #9684 Problema con picture 99.99 sobre clave.


No muestra el valor del atributo clave si el mismo tiene picture 99.99

• SAC #9687 Procedimiento remoto se incluye en el .cab


El Deployment Wizard estaba incluyendo un procedimiento remoto en el .cab generado por el Browser
Deployment.

• SAC #9688 No funciona la llamada entre servlets usando JServ


Al llamar un web panel a otro con call o link, y éstos están corriendo bajo 'Jserv' como motor de
servlets, se presentaba un error.

• SAC #9703 Problemas con evento click sobre check y combo


Se tenían algunos problemas con evento click y valores de variables:
1. Si se da click en la misma celda en la que se esta parado, no se dispara el click.
2. Se tiene una variable en un combo o checkbox en un subfile, y en el evento click de esta variable
se cambia el valor de otra. Al dar click, el evento esta tomando mal el valor de la variable en la que
se dio click.

• SAC #9717 Problema con caracteres especiales en GXWS


Cuando se esta generando un paquete con el GXWS, si en alguno de los campos 'title', 'vendor' o
'description' se ingresa un caracter no valido para XML como ser por ejemplo un '&', '<' o '>'; cuando se
va a ejecutar la aplicación ocurre el siguiente error:
com.genexus.deployment.client.XMLParser.XMLParseException: JNLP Parse Exception:...

• SAC #9721 TRN con subfiles en modo DEL permite modificar valores sub.
En una transacción con subfiles, llamada en modo DELETE, permitía modificar valores del subfile

• SAC #9723 Se ignora el boton de REFRESH mientras no termina el LOAD


En algunos casos se colgaba la aplicación cuando se daba un refresh antes de terminar. Ahora, para
solucionarlo, se ignora el botón de REFRESH mientras no termine el LOAD.

• SAC #9741 Problema al leer cookie en seguida de haberla seteado


No se estaba leyendo el valor de una cookie que haya sido seteada inmediatemente antes.

• SAC #9748 Update incorrecto en determinadas circunstancias


Se estaba realizando mal el upgrade de un atributo cuando éste se realizaba en las siguientes
circunstancias: el update se realiza en un procedimiento que es llamado desde un foreach que utiliza
dicho atributo en el where o defined by y además actualiza otro atributo en la misma tabla.

• SAC #9754 En TRN c/clave y modo inst. se dispara EXIT al comfirmar


En una transacción c/clave y modo instanciado, se disparaba el evento EXIT al dar CONFIRM y después
se disparaba el evento AFTER TRN.

• SAC #9758 Con WFC algunos fonts, con determinado size, se truncan
Con WFC algunos fonts, con determinado size, se truncaban. Por ejemplo el Arial 8 no bold.

• SAC #9775 No funciona función cursor() sobre atributo de subfile


No funciona función cursor(&att) si &att se encuentra en un subfile, ya que no se disparaba al hacer f4
sobre dicho atributo. Además si se tiene la función cursor sobre atributo del cabezal y sobre atributo del
subfile, al dar f4 sobre atributo del subfile, se estaba llamando al prompt del cabezal.

• SAC #9893 Problema al chequear Integridad Referencial al borrar.


Se ingresa a una transacción en modo DLT; al querer borrar el registro el chequeo de integridad
referencial no permite borrarlo pues existe como clave foranea en otro registro; pero luego de mostrado
el mensaje, la transacción pasaba a modo UPD.

• SAC #9901 Problemas en numérico con decimales y signo


Se tiene definida una variable con decimales y signo. Si se digita un valor con signo y sin parte entera el
signo desaparecía. Por ejemplo si se digita -0.02 en la variable se mostraba 0.02

• SAC #9912 Problema con 'Use LDAP User for userid('server')' en 3 capas
Si en una aplicación en 3 capas se tiene la preference 'Use LDAP User for userid('server')' seteada en
YES, y lo primero que se hace en la aplicación es un userid('server'), estaba devolviendo el vacío en vez
del login LDAP.

• SAC #9914 Realiza update de todas lineas en trn 2 niv. al confirmarla


Al modificar una linea de un subfile en una transacción de 2 niveles, se está haciendo el update de cada
una de las líneas, asi como disparandose las reglas para cada una de ellas cuando solo debería hacerse
para la linea que se modificó.

• SAC #9928 Error con WFC por isvalid y tabdialogs al salir de trn
Si se tiene una trn1 con una varible; en el evento IsValid de esta variable se llama a una trn2 que tiene
tabdialogs. En ejecución, con WFC, al salir de esta segunda transacción se presenta un error.

• SAC #9937 Problemas con picture ZZZZ sobre atributo numerico


Se tiene un atributo numérico con picture ZZZZ. Si sobre un reporte o web panel se quiere mostar el
atributo con valor 0, el campo no aparecía vacío como debía.

• SAC #9938 Sort de columnas de subfile en TRN


Se estaba habilitando el hacer click sobre las columnas de un subfile en una TRN, lo que causa
problemas pues las líneas quedan desordenadas.

• SAC #9939 WebProc no realiza commit


Si se tiene un procedimiento con las propiedades ‘CALL PROTOCOL = http’ y ‘COMMIT ON EXIT = Yes’,
no estaba realizando el commit y además la UTL quedaba abierta.

• SAC #9941 Error al ejecutar por segunda vez applet sin cerrar browser
Se tiene una aplicación generada en 3 capas y corriendo como applet. Si se cierra la aplicación, no se
cierra el browser y se vuelve a llamar a la aplicación se presentaba el siguiente error:

java.lang.NullPointerException
at com/ms/com/ComLib.release (ComLib.java)

• SAC #9949 Problemas con picture 99/99/9999


No se está mostrando ni grabando correctamente una fecha cuando el atributo/variable (date) tiene
picture 99/99/9999 y se encuentra en un subfile.

• SAC #9964 Refresh en transacciones


No esta refrescando los atributos fórmula de una transacción.

• SAC #9974 No imprime en forma correcta campo Longvarchar


Se quiere imprimir un campo Longvarchar. Para ello se utiliza lo siguiente: &txt =
GXGetMLi(longao,&i,100). La impresión no queda como se espera.

• SAC #9980 No funciona filtro por variable de tipo date nula en SQL
No esta filtrando los registros en un subfile de de un work panel cuando se tiene una variable de tipo
date (&vardate) como filtro del mismo sobre atributo de tipo date (attdate); o sea en las conditions se
tiene:
attdate <= &vardate .or. null(&vardate ) ;

• SAC #9983 Prob. de límites para la pref. 'First year of 20 century'


Estando seteada la preference 'First year of 20th century' en 40, si se ingresa el año 40, se esta
tomando 01/01/2040 cuando debería ser 01/01/1940

• SAC #10023 Texto en variable en reporte no queda bien centralizada


En un printblock de un reporte, se tiene 'centralizada' una variable de tipo char, y al ejecutarlo, en el
report viewer no aparece centralizada.

• SAC #10028 Error al dar refresh en subfile con carga a pedido y scroll
Se presenta un error en tiempo de ejecución cuando se hace 'refresh' de un work panel con un subfile
con carga a pedido con 'scroll'.

• SAC #10048 No compila webproc con parámetros en 3 capas


No compila un procedimiento con la property CALL PROTOCOL = HTTP (webproc) que recibe parámetros
y generado en 3 capas.

• SAC #10074 Error '<table> WAS CHANGED' al confirmar trn de 2 niveles


En algunos casos de transacciones de 2 niveles, al confirmarla se presenta el mensaje '<TABLE> WAS
CHANGED' o '<TABLE> FUE MODIFICADA', donde <TABLE> es el nombre de la tabla correspondiente al
cabezal de la trn.

• SAC #10108 No se esta tomando en cuenta la preference 'Isolation Level'


No se estaba tomando en cuenta la preference 'Isolation Level'

• SAC #10113 Se graban mal atributos Date nulos en DB2 UDB


Los atributos de tipo Date nulos (gx nullvalue) se estaban grabando con el valor 01/01/0003 en Db2
UDB (Common Servers), cuando debían grabarse con valor 01/01/0001, que es el mínimo valor
soportado por el DBMS para ese tipo de datos.

• SAC #10119 Se baja servicio en 3 capas con DCOM


En determinado momento y de repente se caía el servicio del servidor de aplicaciones GeneXus
ejecutando con DCOM. Previamente mostraba los siguientes mensajes:

sent status for interrogate - gxjvsrv


received interrogate
received 3rd interrogate, stopping self in 5 seconds
• SAC #10137 Problemas con GXWS y VM de Sun
El GeneXus Web Start tenía los siguientes problemas cuando el deployment de la aplicación fue armado
para ejecutar con la Virtual Machine de Sun:
1. No instala correctamente la rbuilder.dll
2. Si se tiene un proxy que no es el de Microsoft no permite instalar/ejecutar correctamente la
aplicación.

• SAC #10140 La aplicación podía dejar de responder al dar CANCEL durante el LOAD
En algunos casos, la aplicación podía dejar de responder al ejecutar CANCEL mientras se estaba
ejecutando el LOAD.

• SAC #10143 Problemas con funciones de texto en Java


Se corrigieron los siguientes problemas con las funciones para manejo de archivos ascii:
1. Se lee mal el archivo si el primer campo es de tipo string
2. Se lee/graba mal si el sepadador es el tabulador (\t)

• SAC #10150 El return en una subrutina no funciona


El return en una subrutina no funcionaba, ya que estaba retornando al llamador en vez de salir del
objeto.

• SAC #10186 Función INT(negativo con decimales) no devuelve lo esperado


La función INT de un negativo con decimales no devolvía lo esperado. Por ejemplo INT(-13.13) devolvía
-14 cuando el resultado debería ser -13.

• SAC #10192 Propiedad 'Generate FOR UPDATE clause' no se toma en cuenta


En un modelo contra Oracle, la propiedad de los procedimientos 'Generate FOR UPDATE clause' no se
estaba tomando en cuenta, mientras que la preferencia a nivel de modelo si está funcionando bien.
UPGRADE #1

Nuevas Funcionalidades
• Exportación y ejecución de programa de reorganización en Java
A partir del Upgrade 1 version 7 (ceibo release) se cuenta con la posibilidad de crear un .jar con los
programas de la reorganización.

Esto se puede hacer de dos maneras:


1) A partir del Developer Menu, con la opción Utilities/Export Reorganization
2) Por fuera de GeneXus. Estando posicionado en el directorio del modelo poner
jview com.genexus.gx.deployment.ReorganizationPacker <nombre del package> [<nombre del .jar>]
Si no se pone nombre del .jar se crea un archivo reorganization.jar.
Si no se pone nombre del package asume que es el package "".

Luego para ejecutar la reorganización hay que hacer lo siguiente:


jview /cp:p <nombre del .jar>;gxclassr.zip;<drivers jdbc> <nombre del package>.Reorganization -force

• Propiedad "Protocol specification" a nivel de objeto


Se implementó la propiedad “Protocol specifation” a nivel de objeto además de la preference del mismo
nombre a nivel de modelo. Esto permite que algunos objetos de un modelo se ejecuten en un ambiente
seguro (https) y otros en uno no seguro (http). Los generadores resuelven automáticamente los links
(función/comando/call) que se realicen entre objetos con diferentes protocolos.

Nota:
Es común que algunos Web Panels de un modelo se ejecuten en el ambiente donde "estén",
dependiendo de qué Web Panel hizo referencia (armó un link) a ellos. Estos Web Panels (los primeros)
tienen que tener la propiedad "Protocol specification" en el valor "Do not specify". Otra alternativa es
que la propiedad mencionada tenga el valor "Use model's preference value" si la preferencia del modelo
"Protocol specification" tiene el valor "Do not specify".

• Funciones FTP a través de un proxy


Se implementó la forma de poder manejar las funciones FTP a través de un proxy. La implementación se
hizo a través de una solución de terceros ya existente y aplicable para ser utilizada.

Las clases se llaman 'NetComponents' y están en


http://www.savarese.org/oro/downloads/index.html#NetComponents

Por ahora no es posible distribuir estas clases con el generador, pero los usuarios si pueden hacerlo. Se
supone que van a liberar una versión de las NetComponents que nos permitirá distribuirlas.

Para utilizarlas hay que poner el archivo 'NetComponents.jar' en el classpath. Si no se encuentra dicho
.jar en el classpath, se utilizará la versión ante rior de las funciones FTP.

• Comando SQL
El comando SQL soporta la ejecución de sentencias SQL dinámicas, es decir sentencias armadas en
tiempo de ejecución.

Si se ponen atributos/variables dentro de la sentencia SQL con la notación [!att/var!], su valor es


considerado en tiempo de ejecución.
Por ejemplo, si se desea modificar el ROLE de un usuario (Oracle):

&Role = "MyRole"
SQL SET ROLE TO [!&Role!]

Nota: Hay que tener en cuenta que las sentencias SQL que se utilicen en el comando SQL de GeneXus
NO pueden retornar valores (SELECT, RPC, etc.).

• Se elimina la preference 'Use GXOffice'


Hasta ahora, las funciones de mail y de excel se podían usar con el API vieja dejando la preference 'Use
gxoffice' = no, y con el API nueva (la de gxoffice) usando la preference 'Use gxoffice' = yes.

A partir del upgrade 1, se elimina la preference 'use gxoffice', y cuando se usan las funciones con el API
GXoffice y se usa el modo 'I', se usa la implementación Java. Cuando se usa el modo 'O' o 'M', se usa la
implementación de la gxoffice.dll.
La preference 'SMTP server' queda por compattibilidad para usuarios que usaban directamente las
funciones de mail de java, pero para aquellos usuarios que programen estas funciones a partir de ahora,
se recomienda usar las funciones GxMMode y GxMLoginSMTP y esta preference no es necesario
especifarla.

• Nueva implementación del GeneXus Web Start


En el upgrade 1 de la version 7.0 del generador java se implementó un nuevo 'GeneXus Web Start
Deployment', asi como también un nuevo 'GeneXus Web Start Client'. Las nuevas funcionalidades son
las siguientes:

Ø Soporte para ejecución del GXWS con la máquina virtual de Sun. Esto permite hacer la
instalación del GXWS desde Netscape teniendo el plug-in del jdk1.3
Ø Opción de incluir el ‘client.cfg’ o no dentro del .jar de la aplicación
Ø Opción de instalación de la máquina virtual de Microsoft
Ø Actualización automática del GXWS Client en caso de una nueva versión.
Ø Se eliminó la instalación explícita del GXWS Client (GeneXus Web Start Install). La misma se
hace automáticamente desde el browser.
Ø Generación de log en caso de errores en el GXWS Client.
Ø Despliegue de mensajes de consola de la aplicación.
Ø Desinstalación desde el diálogo 'add/remove programs' de aplicaciones instaladas por el GXWS
Client.

Compatibilidad:
Esta nueva implementación ES COMPATIBLE con la anterior. Aquellos usuarios que tengan el GXWS de la
7.0 instalado asi como aplicaciones instaladas con él, seguirán funcionando desde el nuevo GXWS Client.

Limitación temporal:
Si se ejecuta una aplicación instalada con la versión 7.0, desde el GXWS Client nuevo, se presentará un
error. De todas formas, al dar OK al mensaje de error, ésta ejecutará sin problemas, asi como también
ejecuta sin problemas desde el browser y desde el shorcut directo. Se corregirá este problema en el
próximo upgrade.

Nota:
Para actualizar las aplicaciones a la versión dejada en el web server, es necesario tener instalado el
nuevo GeneXus Web Start Client. Para ello, el cliente deberá llamar a la aplicación desde el browser.
Desde el shorcut o desde el GeneXus Web Start anterior (7.0) no las actualizará.
A partir de esta versión, las próximas versiones del GXWS Client si se actualizará automáticamente.

• Soporte para 'I-net AUGURO': drivers tipo 4 para Oracle


Ejecutando sobre Oracle con el driver JDBC de Oracle Thin en algunos casos se han presentado algunos
errores. Muchos de estos errores se solucionan utilizando el driver JDBC de I-Net Auguro, por lo cual es
recomendable utilizarlo.
El mismo se puede obtener en http://www.inetsoftware.de/English/Produkte/AUGURO/default.htm .

Errores Corregidos

• SAC #7113 - Problemas con subtipos


En ALGUNOS casos al compilar objetos o reorganizaciones que involucran atributos subtipos, se
presentan los siguientes errores:

error J0235: 'sub0008600090' is not a method in class 'dbcXXXX'

• SAC #8770 - Problema con función YmdHmstoT


La función YmdHmstoT cuando se ingresa una fecha inválida debe devolver una fecha nula y no lo está
haciendo. Por ejemplo si se ingresa YmdHmstoT(1999 ,2 ,31 ,0, 0, 0 ), devuevle 03/03/1999.

• SAC #8851 - Error 'unable to open' llamando al 'Opendocument' de un .htm


Al ejecutar el opendocument, pasándole un .htm como parámetro, por ejemplo:
&opendoc=opendocument("http://www.genexus.com/cgxfaq.htm" )
se presentaba un error del tipo:
'unable to open "http://www.genexus.com/cgxfaq.htm"'

• SAC #8852 - Problema en carga de subfile vacío


Si se tiene un work panel con un subfile y variable de filtro sobre el mismo. Si se carga algún registro en
el subfile y luego se aplica un filtro sobre el mismo de tal forma que ningún registro cumpla la condición,
de todos modos permanecía en memoria el último registro que se cargó la vez anterior.

• SAC #8879 - El GXWS puede no estar actualizando la versión de una aplicación


Si se tiene una version (1) de la aplicación en el server. Esta misma se tiene instalada por el gxws. Se
actualiza la versión de la aplicación en el server, pero al ejecutarla desde el cliente, éste no detectaba la
actualización, no reflejando el cambio. Esto ocurría si habia un proxy entre el cliente y el servidor Web
que hacia el cache de las clases de la aplicación.

• SAC #8884 - Web Panels generan código HTML de más


Cuando se generaban varios web panels juntos (por ej.al hacer un Build All) podía pasar que al ejecutar
alguno de ellos se generara código HTML innecesario.

• SAC #8887 - DBMS Options quedan default al cambiar alguna preference


Al cambiar cualquier otra preference del modelo (File/Edit Model/Preference), algunas de las propiedades
que se cambiaran en las ‘dbms options’ volvían a tomar el valor por defecto (por ejemplo: Show
Connection Dialog = Yes y OS for AS/400 Version = V2R2).

• SAC #8891 - No funciona loadbitmap("http://gxchart.com.uy/...) en applet


Si en un Work panel se carga en una variable bitmap lo siguiente: &var =
LoadBitmap("http://www.gxchart.com/..."), al ejecutar el mismo como applet no se carga la gráfica.

• SAC #8898 - Error en la funcion STR(1234.5,4,1)


La función STR(1234.5,4,1) debería devolver 1235 y estaba devolviendo: ****

• SAC #8916 - Error en la funcion STR(-1.25,2,1)


La funcion STR(-1.25,2,1) debería devolver: -1 y estaba devolviendo: -1.0.

• SAC #8917 - Error en la funcion STR(-1.25,5,1)


La funcion STR(-1.25,5,1) debería devolver: -1.3 y estaba devolviendo: -1.2.

• SAC #8918 - Error en la funcion STR(1234.4,5,1)


La funcion STR(1234.4,5,1) debería devolver: 1234 y estaba devolviendo: *****

• SAC #8923 - Link a un proc/rpt con Call protocol = HTTP en Web Panels
Si se utiliza la función Link invocando a un procedimiento o reporte cuya propiedad "Call protocol" tiene
el valor HTTP, el link se generaba en forma incorrecta.

• SAC #8926 - Error en función GXXlsCre sobre subfile con att de tipo date
Al ejecutar el evento que llama a la función GXXlsCre de esta forma:
call('gxXlsCre','d:\java\prueba.xls',2,2,&titulo(),1,"SUBFILE")
donde una de las columnas del subfile es de tipo DATE o DATETIME
se presentaba un error en tiempo de ejecución.

• SAC #8929 - Error en wbp si se tiene 'Auto compress web pages' = NO


Se tiene la preference 'Auto compress web pages' = NO. Al ejectuar un web panel se presentaba un
error del tipo: Internal Servlet Error 500.

• SAC #8933 - Error al ejecutar múltiples procesos simultáneos en servidor


Se presentaba un error al ejecutar funciones 'con estado' cuando éstas son llamadas desde múltiples
procesos simultáneos en un servidor, como ser POP3, FTP, etc, también podía suceder con funciones del
gxoffice. Si las funciones son ejecutadas desde un web panel o por un servidor de aplicaciones
(procedimiento remoto en 3 capas) y se ejecuta simultáneamente desde varios clientes a la vez, podían
'mezclarse' las ejecuciones y obtener resultados no esperados.

• SAC #8963 - Report Viewer no abre maximizado la primera vez


Si en las preferences se tiene que el Report Viewer se abra maximizado, sucedía que la primera vez que
se ejecuta un reporte no abre el Report Viewer maximizado, las veces siguientes si.

• SAC #8988 - No esta funcionando la prop. 'Show connection dialog' = YES


No estaba funcionando la property (en dbms options) 'Show connection dialog' cuando se cambia de NO
a YES.
• SAC #8990 - Error en la función YMDToD con parámetros inválidos
La función YMDToD cuando se le pasan parámetros inválidos, por ej. YMDToD(53,01,33) debería
devolver nulo y esta devolviendo otro valor (02/02/53).

• SAC #8991 - Problema en lectura de atributos carácter


Cuando se leen atributos de tipo carácter desde la base de datos, se mantienen los blancos a la derecha.
Para SQL Server, algunos drivers no lo estaban devolviendo correctamente, por lo que el generador los
agrega explicitamente.

• SAC #8992 - Error en funcion VAL con caracteres no numéricos


Al ejecutar la función VAL con caracteres no numéricos, por ejemplo VAL("12A") o VAL(".abc") o
VAL("12.1.2") se presentaba un error del tipo: java.lang.NumberFormatException: 12A

• SAC #9004 - Problemas con procedimiento Main y WFC


Cuando se llamaba a work panels o transacciones desde un procedimiento main podían presentarse
problemas utilizando WFC (con jview), como por ejemplo que quede 'colgada' la aplicación.

• SAC #9034 - GPF al ejecutar EXE generado por MS Exe Deployment


En Windows9X se presentaba un GPF al ejecutar el .exe generado por el Microsoft EXE Deployment.

• SAC #9035 - Botones que ejecutan el mismo evento


Si se tienen dos botones en un work panel que tienen asociado el mismo evento, al ejecutarlo desde uno
de ellos, al ejecutarlo del otro no realizaba ninguna acción.

• SAC #9038 - Couldn't CreateDispatch on Word


Se tiene un web panel en donde en un evento se llama a funciones de GXOffice (por ejmplo funciones de
word). Al ejecutar el evento, la primera vez ejecuta en forma correcta, pero la segunda vez ocurría el
error "Couldn't CreateDispatch on Word"

• SAC #9063 - Error si se tiene en pantalla arrays de &i


Se tiene en un form un control que carga un valor de un array a partir de un índice variable (por ejemplo
&arr(&i) en un edit control) entonces al ejecutar se presentaba un mensaje de error del tipo:
java.lang.ArrayIndexOutOfBoundsException

• SAC #9070 - Error al llamar a RPG en V4R4


Al llamar a programas RPG/400 en un V4R4 pasándole parámetros numéricos se presentaba un error en
ejecución del tipo:

java.sql.SQLException: Data type mismatch.


at com/ibm/as400/access/JDError.throwSQLException
.....

• SAC #9078 - Browser Deployment no incluye los Install JAR dependencies


Se utiliza el Deployment Wizard para crear con el Browser Deployment archivos JARs. Todos los archivos
agregados en "Install JAR dependencies" no eran tomados en cuenta a la hora de generar el archivo
html para ejecutar la aplicación.

• SAC #9080 - gxxgetformat is not a method in class GxOffice


Se utiliza la función de GXOffice gxxgetformat. En tiempo de compilación se presentaba el siguiente
error:
error J0235: 'gxxgetformat' is not a method in class 'GxOffice'

• SAC #9115 - No se respeta propiedades de control de tipo "rectangulo"


Se define un control de tipo rectángulo con "Fill" y "3d". En ejecución no se respetaba la propiedad "3d".

• SAC #9116 - No compilan funciones standard si se le pasa atributos


Si al hacer llamadas a funciones que se puedan llamar haciendo un 'call' se les pasa en los parámetros
algún atributo ocurre un error en tiempo de compilación.

• SAC #9163 - Error al estatizar wbp con funciones cookies y/o de sesion
Al estatizar un web panel que utiliza funciones de cookies o de manejo de sesión, se presentaban errores
al crear el .html.

• SAC #9169 - '<AppName> doesn't contained META-INF/CHECKSUM.INF'


Al crear el .jar desde el GXWS Deployment, se presentaba el siguiente error: '<AppName> doesn't
contained META-INF/CHECKSUM.INF'

• SAC #9174 - Error 'Ocurrio un error al cargar la aplica...' en GXWS


Si en el nombre de la aplicacion, en el GeneXus Web Start Deployment, se utilizan caracteres no asccii,
entonces al ejecuta r el GXWS se presentaba el siguiente error:
'Ocurrio un error al cargar la aplicacion. ¿desea ejecutar la version local?'

• SAC #9177 - Error 'index out of bounds exception' cliqueando en subfile


Si se oculta una columna de un subfile con la propiedad VISIBLE de modo que quedara una parte 'gris' a
la derecha del subfile, y se daba clic en la parte correspondiente a los titulos de esa parte gris, se
presentaba el error 'index out of bounds exception'.

• SAC #9178 - Se permite modificar clave segundo nivel en transacciones


En transacciones de más de un nivel llamdas SIN el modo instanciado, se permitía modificar (queda
editable) la clave del segundo nivel.

• SAC #9183 - Problemas en funciones XML de bajo nivel


La función xmlvalue estaba generando al valor con un espacio antes del mismo

• SAC #9185 - Problemas con el ServerConfig


Se corrigieron los siguientes problemas en el ServerConfig
1. No funcionaba correctamente el 'import', por lo que la aplicación correspondiente a ese namespace,
podria no funcionar correctamente.
2. Dejaba grabar pools de conexiones con tamaño 0, y eso no funciona. Ahora se valida que no sean 0.
3. Para el AS/400 no se estaba pidiendo el 'database name' en el diálogo del datastore. Podría
presentarse un error al conectarse en 3 capas al AS.

• SAC #9186 - Properties de Data Views no se toman en cuenta


Cuando se especifican las properties en los DataViews, no se estaban tomando en cuenta las específicas
del modelo, sino que solo tomaba en cuenta las properties de 'diseño'.

• SAC #9210 - 'Maximum open cursors per connection' no funciona


Aunque se cambie el valor de la preference 'Maximum open cursors per connection' siempre quedaba =
100, que es su valor default.

• SAC #9211 - Llamadas a stored procedures en 3 capas desde web panels


Las llamadas a stored procedures en 3 capas desde web panels no estaban funcionando.

• SAC #9230 - No funciona Loadbitmap de archivos con blancos al final


No funcionaba la función Loadbitmap en applets cuando el nombre del archivo tenia espacios en blanco
al final.

• SAC #9231 - SUBSTR('aa', 5, 1) devuelve 'aa'


La función SUBSTR("aa", 5, 1) debería devolver el string vacio “” y estaba devolviendo 'aa'.

• SAC #9233 - La 'gxseldir' no permite seleccionar un directorio


La 'gxseldir' no permitía seleccionar un directorio, sino que se debía hacer seleccionando un archivo del
mismo. Se corrigió para WFC de forma que permita seleccionar directamente el directorio. Además
permite crear un folder, asi como escribir el nombre directamente.

• SAC #9234 - Problemas con array(&i) en pantalla y en evento se cambia &i


Si se tiene en la pantalla un control que muestra &arr(&i), cuando en un evento se cambia &i y se hace
un 'refresh', no se actualizaba el valor en la pantalla.

• SAC #9245 - En algunos casos no se compilan los 'subWXXXXX.java'


Si un work panel (no main) con subfile es llamado por cualquier otro objeto main, no se estaba
incluyendo el 'subW' de este work panel en el .mak, por lo no siempre se compilaba. En dicho caso podía
ocasionar errores por ej. al cargar las clases en el Deployment Wizard.

• SAC #9280 - Error en la función ADDMTH


La función ADDMTH se le pasaba un valor <28 en el día de la fecha devolvía un resultado incorrecto.

• SAC #9291 - Problemas con la 'scroll bar' horizontal y 'noaccepts'


Si se tiene un subfile con 'scroll bar' horizontal habilitada y sus últimas columnas son 'noaccept', podría
colgarse la aplicación al pasar con 'tab' a la primera de ellas.

• SAC #9303 - No refresca en pantalla variables del subfile asignadas en evento click
Si se asigna una variable del subfile en el evento click sobre si misma, cuando se da click sobre la
variable en cuestión, no cargaba el valor de la misma.

• SAC #9323 – No retorna los valores de arrays en calls remotos


Ejecutando en 3 capas, al llamar a un procedimiento remoto pasandole como parámetro un array, no
estaba retornando los valores del mismo, sino que volvian nulos.

• SAC #9327 – Problemas con columnas visibles/invisibles


Si se tiene un subfile con columnas que se haces visibles e invisibles en los eventos, se presentaban
errores en ejecucion.

• SAC #9330 – Error en funcion GxXLSCre al pasarle un 'handle'


Al llamar a la funcion GxXlsCre pasandole un 'handle' como parametro: call('GxXlsCre',&Direccion, 6,1,
&Tit(), 0,'subfile'), se presenta un error en ejecución del tipo:
java.lang.NullPointerException
at com/genexus/office/GXExcel.getHandleInfo (GXExcel.java)

• SAC #9341 – Error en el DW al cargar las clases


Si se tiene un comando 'java' y la clase que se llama, se quiere incluir en un .CAB, y no que el DW la
incluya en el .jar, el Deplyment Wizard da error de que no encuentra la clase y no permite seguir
adelante, por lo que se puede llegar a incluir dicha clase en el .CAB

• SAC #9450 – Problemas con update/delete no optimizados en 3 capas con AS


Si se tiene un foreach con un update o delete (no 'optimizable'), ejecutando en 3 capas y contra el
AS/400, sólo se realizaba el update/delete en el primer registro que cumpliera las condiciones del
foreach.

• SAC #9456 - Error al compilar la función 'replicate'


Se presenta un error al compilar un objeto que utilice la función 'replicate'

También podría gustarte