0% encontró este documento útil (0 votos)
105 vistas18 páginas

Actualización de GeneXus: Correcciones y Mejoras

Este documento resume los cambios realizados en la versión 6 del software de modelado GeneXus en su actualización 1. Se corrigieron errores y se mejoraron las funcionalidades, incluyendo aumentar el límite de eventos soportados, generar archivos de salida de compilación para diferentes generadores, y corregir problemas al mover items entre barras de menú y al transferir modelos al sistema AS/400.

Cargado por

Mauricio Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
105 vistas18 páginas

Actualización de GeneXus: Correcciones y Mejoras

Este documento resume los cambios realizados en la versión 6 del software de modelado GeneXus en su actualización 1. Se corrigieron errores y se mejoraron las funcionalidades, incluyendo aumentar el límite de eventos soportados, generar archivos de salida de compilación para diferentes generadores, y corregir problemas al mover items entre barras de menú y al transferir modelos al sistema AS/400.

Cargado por

Mauricio Mendoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MODELADOR VERSIÓN 6 EVOLUTION 1

Patch # 4
Observación: este patch actualiza el archivo property.ini

• Se aumento el máximo de eventos soportados.


Se aumento el máximo de eventos soportados, paso de 256 a 2048 eventos.

• Se genera archivo de salida de compilación de VB, VFP y Java.


Se implementó un cambio en el F5 (Run) de los generadores VB, VFP y Java, para poder generar un
archivo de salida de compilación. El mismo se genera en el directorio del modelo, con el nombre
RUNOUTPUT.LOG.

• Daba error al utilizar un atributo a continuación de // que estaba entre comillas.


Si se incluía “//” dentro de un string lo consideraba como comentario.
El error fue corregido.

• Al mover ítems entre dos menu bar daba GPF.


Si se movía un botón de una Tool Bar o ítem de una Menu Bar hacia otra haciendo drag & drop. Luego al
hacer click en la primer Menu Bar daba un GPF.
El error fue corregido.

• Daba error al transferir al AS/400 Versión 4R4 con modo TCP/IP.


Al transferir con TCP/IP al AS/400 daba el siguiente error: 'TFR/TCP 425: Not able to open data
connection ', solo sucedía con la Versión 4R4 del OS/400.
El error fue corregido.

• No se podían ejecutar aplicaciones desde el F5 con el generador de XBase for Dos.


Cuando se ejecutaba el generador de XBase for Dos desde el F5, no permitía ejecutar la aplicación.
El error fue corregido.

• En algunos casos se cerraba GeneXus luego de realizar una reorganización.


Si se realizaba una reorganización ejecutando GeneXus desde Windows 2000, en ciertos casos se cerraba
GX luego de haber realizado el Copy Model.
El error fue corregido.

• No aparecía la lista de generadores válidos para los Web Panel en Java.


En la sección Information/Options de un web panel JAVA, aparece el objeto marcado como MAIN (y
deshabilitado, esto como en todos los generadores de web panels), pero además la lista de generadores
válidos (GENERATOR) estaba vacía. Era simplemente un problema visual porque no afectaba la
generación de los mismos.
El error fue corregido.

• Daba error Ole Error SC 261 - FAC 4 - SEV 1 al cambiar a la página 4 en el Data View
Generator.
Con algunas versiones de Client Acces al pasar a la página 4 (conflictos) del Data View Generator, usando
DB2/400, aparecía el error: Ole Error SC 261 - FAC 4 - SEV 1 y cancelaba la ejecución del Data View
Generator sin generar el xpw.
El error fue corregido.
Patch # 3

IMPORTANTE: Cambio en metodología de aplicación de patches

A partir de este patch se esta utilizando una nueva tecnología para el armado de los mismos.
La principal ventaja del uso de esta tecnología es la posibilidad de modificar y registrar archivos del
sistema (dlls y ocx que se encuentran en el directorio windows\system), esto implica la eliminación de los
patches del nsetup.

Estos nuevos patches podrán actualizar:


• Archivos propios de la instalación de GeneXus (por ejemplo. el ambiente de desarrollo, el
generador o programas standard).
Esto es lo que hacíamos hasta ahora. Implica que es suficiente con aplicar el patch en el servidor.

• Archivos del sistema ( por ej. bibliotecas y controles que se instalan en windows\system)
Cuando también instale archivos del sistema, será necesario aplicar el patch en el servidor y en
todas las estaciones de trabajo seleccionando el directorio donde esta instalado GeneXus.

Nota : En una nueva terminal de trabajo es necesario instalar el Nsetup de la instalación original, y el patch
correspondiente. Los nuevos patches eliminan los patches del Nsetup, pero no el Nsetup.

• Se actualiza la protección de CrypKey a la versión 5.0.


Incluye:

• Nuevo driver de CrypKey para NT, con uninstall.


• Mejoras en el tiempo de respuesta al chequear la licencia en NT
• Se elimina el error: Network and NT Restriction File Moved or CRC problem.

• Nueva forma de transferencia al AS/400: Client/Access Command Line.


La transferencia se realiza invocando los comandos de transferencia (Rfrompcb) y ejecución
(Runcmd) de línea de comandos del Client/Access.
Se recomienda establecer la conexión al AS/400 previamente pues sino cada comando realiza la
conexión y desconexión penalizando el tiempo de transferencia de los programas.

Nota: Para utilizar esta transferencia es necesario tener aplicados los patches 3 de los generadores
Cobol y RPG, los cuales serán liberados a la brevedad.

• Se ensancharon los combos del diálogo de Object Info donde aparecen los folder y los styles.

• Lock al borrar y hacer update de los registros de la Knowledge Base.


Existía un problema cuando trabajaban muchos usuario concurrentemente en una base de
conocimiento GeneXus.
El problema era originado porque no se lockeaba antes de borrar, o modificar un registro en algunos
archivos de la base de conocimiento. Esto podía causar que, en ciertas condiciones, quedara mal
grabada alguna información, provocando Internal errors al trabajar en la base de conocimiento.
El error fue corregido.

• Problemas con objetos que tuvieran definidas las variables: &Oper, &Dberr, &Dbtxt, &Errtbl,
&Erropt, &Dbname &Dbsrv, &Userid y &Passwrd.
Si se tenía un objeto, con las variables mencionadas, se especificaba correctamente, pero provocaba un
error de ejecución.
El error fue corregido.

• Recursos de Windows se agotaban al trabajar con menu bar


Luego de trabajar un rato con una menu bar, agregando menues e items y cambiando descripciones, se
agotaban los recursos de Windows. Había que cerrar GeneXus.
El error fue corregido.

• No consolidaban índices de usuario, si el archivo de consolidación había sido generado con


GeneXus 6.0
Si se consolidaba un .xpw generado con GeneXus 6.0 en la versión 6.1, no consolidaba los índices de
usuario.
El error fue corregido.

• Al hacer copy from un atributo longvarchar no trae el Avg Len.


Esto ocurría siempre con el copy from, sin importar si se estaba definiendo o editando una variable,
atributo o dominio. El tipo del atributo del que se copiaba era LongVarchar o DateTime. En estos 2
casos se ponían los valores por defecto, que son 40,0 y 8,5 respectivamente.
El error fue corregido.

• Problema en la normalización cuando ID de tabla era mayor que 1000.


Había un error al normalizar, calcular subordinaciones, tablas extendidas cuando existían tablas con ID
(identificador) mayor a 1000.
El error fue corregido.

• General Protection Fault en el Browser cuando no hay filtros.


Se tenía abierto el diálogo del Browser y sin elegir ningún filtro. Si se hacía doble click en la parte
donde se muestra el árbol de llamadas, daba los siguientes GPF's:

GXW32 caused an invalid page fault in


module GXW32.EXE at 0177:00451e67.

GXW32 caused an invalid page fault in


module MFC42.DLL at 0177:5f4012a1.

El error fue corregido.

• Programas de mantenimiento de redundancias y N generadores por modelo.

• No generaba los programas de mantenimiento de redundancias para el generador


secundario.
Los programas de mantenimiento de redundancias, se especifican y se genera un .SPC por cada
generador del modelo. Por error, luego de ejecutar un impacto, se borraba la .spc del generador
secundario. Por esto es que no lo encontraba, y nunca era generado.

• Cancelaba la creación de la base de datos.


Se tenía un modelo Client/Server (VB o VPF) con el generador de la reorganización Cobol, las
especificaciones de los programas de redundancias no estaban completas.
Por esa razón cuando se esta ejecutando una creación de la base de datos cancelaba porque no
puede generar el programa de redundancia.

Ambos errores fueron corregidos.

• Se generaban mal los prompts con claves compuestas.

Se tenían las siguientes transacciones:

TRN Empresa TRN Personas TRN PerEmp


EmpId* PerId* EmpId*
EmpNom PerNom PerId*
EmpNom
PerNom

Los prompt que se generaban en la transacción PerEmp eran:

• el autoprompt de Persona - Empresa


• el prompt de Personas
• el prompt de Persona - Empresa , este último debía ser el prompt de Empresa. En la
navegación, indicaba bien el nombre de la tabla pero el prompt que llamaba era el
autoprompt, y ademas lo ponía como de usuario.
La navegación era la siguiente:

Transaction TPerEmp : PerEmp


----------------------------------------------------------------

PROMPT CALLS
Table Program Parameters
PERSONAS WGx00G0 PerId
EMPRESA WGx00E0 (U) EmpId, PerId
PEREMP WGx00E0 EmpId, PerId

El error fue corregido.

• Problema en el F5 al crear o reorganizar Base de Datos C/S.


En algunos casos, cuando se creaba o reorganizaba una base de datos C/S, en máquinas con Windows
95, pasaba que luego de haber creado o reorganizado la base de datos, quedaba la ventana del F5
abierta con los mensajes:

Compiling RMENU...
Visual Basic Output:

Build of 'RMENU.exe' succeeded.


Compilation Successful

Executing RMENU...

y luego de terminada la creación o reorganización no se cerraba esta ventana. Para que terminara la
ejecución había que matar la tarea.

El error fue corregido.

• Error al consolidar: Internal Error 3 in function atttonames ISAM Error 101 9 2


Al consolidar un .xpw daba el Internal Error:

Internal Error 3 in function atttonames


ISAM Error 101 9 2

El error ocurría al consolidar una formula expresión. Sólo ocurría en casos que la tabla extendida
estaba compuesta por mas de 500 atributos.

El error fue corregido.

• Por error el especificador definía el mismo nombre interno a variable y atributo.


El especificador estaba asignando el mismo nombre interno a variables y a atributos.
El error fue corregido.

• General Protection Fault en el módulo CRP9516B.DLL


En algunos casos daba este General Protection Fault al generar con cualquier generador. El mensaje
completo, para el caso del generador RPG, es el siguiente:

WGERPG32 causó un error de protección general


en el módulo CRP9516B.DLL en 0001:0000d6f5.
Era un problema con la versión 4.3 de Crypkey que lo soluciona la versión 5.0, que actualiza este
patch.

• No mostraba los eventos y métodos de los controles sobre una página con un tab control.
Se tenía un work panel con un tab control de una sola página, y se colocaba cualquier control sobre la
misma. Luego se quería asociar un evento o un método a ese control, y no aparecía ese control para
poder asociarle un evento o método.
El error fue corregido.

• En el selector del Impact object decía “File View” en vez de “Data View”.
El error fue corregido.

• Error en el log del Impact Object


En el log del Impact Object, la lista de la izquierda la ordenaba alfabéticamente, pero ponía todas las
minúsculas luego de las mayúsculas por lo que no quedaba del todo ordenado alfabéticamente..
El error fue corregido.

DATA VIEW GENERATOR.

• Shortcut Alt+N repetido en la página 3


En la página 3, la secuencia de teclas Alt+N se encuentra definida dos veces: la primera para acceder
al largo del nombre de la tabla y la segunda para avanzar a la siguiente página del DVG. Se modificó
la secuencia de teclas para acceder al largo del nombre de la tabla.

• No recupera el nombre de formato de registro con AS/400


Cuando se genera un Data View a partir de una tabla del AS/400, no se estaba recuperando el nombre
del formato de registro. Quedaba definido como (default) y no con el nombre correcto.
El error fue corregido.

• Problema con el orden de los atributos al importar índices en una tabla del AS/400.
Cuando se usa el DVG para importar la información de una tabla creada en el AS/400 con el
generador COBOL o RPG y con la preference ORDER ATRIBUTES IN FILE configurada con YES,
podía ocurrir que el orden de los atributos de los índices (incluída la clave primaria) no coincidiera con
el orden real, por lo que al especificar la transacción asociada aparece el error: “Error: External index
not defined for attributes XX , XY …”
El error fue corregido.

• No distingue índices con atributos en orden ascendente y descendente en AS/400


Cuando se usa el DVG para importar la información de una tabla del AS/400 que tiene definidos
índices de usuarios compuestos por los mismos atributos pero el orden de al menos uno de los atributos
es diferente, en el modelo se estaba definiendo solamente uno de los índices.
El error fue corregido.

• Opción Export File Directory no estaba deshabilitada.


Cuando se usa el DVG desde GeneXus, la opción EXPORT FILE DIRECTORY aparece deshabilitada
ya que el archivo de consolidación se generará en el directorio de la base de conocimiento que se esta
usando. Sin embargo, se podía cliquear el botón para seleccionar otro directorio, por lo que luego no
se consolidaba el archivo generado ya que el mismo no era encontrado.
El error fue corregido.

• Error de registración OLE 261


Cuando se usa el DVG para importar la información de tablas del AS/400, dependiendo de la versión
de Client/Access podía ocurrir el error: Ole Error sc 261 - fac 4 - sev 1, cuando se pasaba a la página 4
(conflictos) del Data View Generator. Como consecuencia se cancelaba la ejecución del DVG sin
generar el .xpw.
El error fue corregido.

• Error: Cannot have more than one unique index con DVG
En todos los DBMS es posible tener una única clave primaria por tabla. Pero, puede ocurrir que tenga
más de un índice de clave única (llaves candidatas). Esto ultimo no es permitido en GeneXus.
Cuando se usaba el DVG para importar una tabla que tiene mas de un índice de clave única, se
producía un error al consolidar indicando que no se puede tener más de un índice por clave primaria (
(FileView Validation) - Error: Cannot have more than one unique index ERROR: Object not
consolidated).
El error fue corregido.

• Los atributos LongVarChar se importaban con largo cero


Los atributos LongVarChar eran consolidados con largo cero.
El error fue corregido.

• No se aplica Regla de sustitución de tipo


Al seleccionar un tipo de datos en el grupo ‘Replace with’ para definir una regla de sustitución de tipo
se pierde el largo ingresado para el tipo de datos del grupo ‘Find what’. Como consecuencia no se
aplicaba dicha regla.
El error fue corregido.

Patch # 2
• Las funciones EOM, ADDMTH y ADDYR retornan el mismo tipo de datos que el primer parámetro
que reciben.

En la versión 6.0 fue implementado el tipo de datos Date Time, esto trajo como consecuencia que las
funciones EOM, ADDMTH y ADDYR cambiaran el tipo de datos de retorno de Date a Date Time.
En este patch se cambiaron estas funciones para que devuelvan el tipo de datos Date cuando el
parámetro recibido es un Date, y Date Time cuando el tipo de datos del parámetro recibido es Date
Time.
Esto permite mayor flexibilidad en las operaciones y comparaciones que involucran estas funciones y
tipo de datos date.

Algunos ejemplo de operaciones validas son:

Días = Eom(DateExp1 ) - DateExp2 ==> Días = Date - Date


IF addyr(DateExp1, NumExp ) >= DateExp2 ==> IF Date >= Date
IF addmth(DateTimeExp1, NumExp ) >= DateTimeExp1 ==> IF DateTime >= DateTime

En cambio, las siguientes, no serán válidas:

Días = eom(DateTimeExp1 ) - DateTimeExp1 ==> Días = DateTime – DateTime


==> Usar TDIFF()

IF addyr(DateTimeExp1 , NumExp ) >= DateExp1 ==> IF DateTime >= Date


==> Asignar DateTimeExp1 a una variable de tipo Date o DateExp1 a una variable DateTime

IF addmth( DateExp1 , NumExp ) >= DateTimeExp2 ==> IF Date >= DateTime


==> Asignar DateTimeExp2 a una variable de tipo Date o DateExp1 a una variable DateTime.
NOTA: Para que este cambio este contemplado en los generadores, deberán tener aplicados el patch
correspondiente al generador, cuya fecha de liberación sea posterior a la de liberación de este patch.

• Propiedad de work panels Refresh TimeOut.


Se cambió esta propiedad de objeto: se abrió en 2 propiedades bajo la sección Refresh Timeout:

Lapse
Triggers

Lapse es lo mismo que era antes (o sea los segundos que deben transcurrir para que se dispare
nuevamente el refresh)

Triggers indica el refresh automático: siempre, o solo cuando el objeto tiene el foco.

Esta última propiedad solo aplica a VFP.

• Se permite cambiar la picture de las variables estándar.


Se modificó el diálogo y funciona de la siguiente manera: si se digita un nombre de variable
estándar, al salir del campo se inhiben todos los campos menos el de picture.

• Mejoras en los intellitips.

• Traen los comandos pero sólo hasta un blanco.


Por ejemplo sólo se va a tener un FOR y no EACH ni SELECTED ni ORDER.
Para el caso de DO WHILE, sólo se tendrá DO y no WHILE.

• No aparecerán los tooltips si se está insertando algo.


Sólo en caso que se esté escribiendo e inmediatamente después de la letra que se escribió (el
siguiente carácter pegado a la derecha) sea un número, letra o underscore (_).

• No aparecerán los intellitips si se está luego de un . (punto) como ser .no, .an, etc.

• Por error en el especificador, se generaba mal una sentencia SELECT, y daba el error Invalid
Column Name X1.

Se tenían las siguientes estructuras:

TRN 1:
A*
X*

TRN2:
A*
A*
C*
X
E

TRN 3
A*
C1*
B*
X1
E1

y el siguiente grupo de subtipos:

A Pri. ---
C1 Pri. C
X1 Inf. X
E1 Inf. E

En un wkp se mostraban en un subfile los atributos A, C1, B, X1, E1, pero con la condición X1
>=&variable.

Si se generaba contra SQL Server se generaba mal la sentencia select, mientras que contra Oracle la
sentencia era generada correctamente.

• Al abrir el dialogo de Edit Attribute reseteaba siempre el campo title al valor por default.
El error fue corregido.

• Error al especificar pictures de atributos/variables.


Si se ponía una picture de 30 posiciones, por ejemplo: !!!!!!! (30 ocurrencias), al especificar por error
agregaba caracteres extraños a continuación de la misma, entonces al generar daba error.
El error fue corregido.

DATA VIEW GENERATOR.

• Error: Cannot have more than one unique index.


Cuando se usaba el DVG y la tabla a importar tenía mas de un índice de clave única, el DVG no dejaba
el primero como índice de clave primaria y el resto como índices duplicados.

El control no se estaba haciendo, y en el xpw generado se dejaba la definición de índice único para
todos. Por esto, al momento de consolidar en el modelo de Diseño, aparecía el mensaje de error:

(FileView Validation) - Error: Cannot have more than one unique index
ERROR: Object not consolidated

El error fue corregido. Se realiza el control.

PATCH # 1

• Mejoras en el diálogo de Consolidate:

• Al entrar al diálogo, se recalcula el mapping procesando las rules si ya tenía. Antes era necesario
entrar a Advanced para esto.

• Al cerrar el diálogo de Advanced con Cancel, sin salvar las rules editadas, sólo se avisa que no se
salvaron, pero no se da más la opción de salvar. Si se quiere salvar, se da Cancel y se salva con el
botón de Save.
Si se da OK sin salvar las rules y estas fueron modificadas, se abre el diálogo de Save
automáticamente.
• Si a un XPW se le aplican reglas, queda un mapping. Si se volvía a consolidar ese mismo XPW
(path y filename idénticos) con objetos nuevos, se aplicaba el mapping a los objetos y atributos ya
mapeados, no se reaplicaban las reglas nuevamente.

• Mejoras en los editores:

• En los editores donde aparece la list box con los atributos (sólo para transacciones), ahora también
aparecen las funciones y las rules (si se está editando las rules), y los comandos (si está en
eventos y subrutinas)

• Las rules, funciones y comandos aparecen en cualquier tipo de objeto, no sólo en las
transacciones como los atributos.

Esto resuelve el problema que si se está escribiendo la rule PARM() y se tiene un atributo
PAXXX entonces intenta pastear PAXXX o, si se tiene el atributo PA de 2 letras.

• Los intelliSense no se activan en los comentarios y dentro de un string, es decir entre comillas o
apóstrofes.

• Cuando se pastea una función que tiene parámetros, el cursor queda justo en el cierra paréntesis.

• Permite indentar y desindentar con Tab y Shift-Tab en el editor de reportes y procedimientos como
se hace en los eventos y rules.

• En el menú se agregó la opción de Find Next (con F3).

• Se agregó la opción de "Use Windows Default" en el paper de los reportes y procedimientos.

Esta opción permite utilizar como papel por defecto el seteado en la impresora predeterminada en
windows.

Importante: El generador debe tener fecha posterior a esta, para que este cambio sea considerado.

• Se agregaron las funciones ServerNow(), ServerTime() y ServerDate().

Estas son aplicables a los generadores Java, C/SQL y los generadores C/S.
- ServerNow(): Retorna un tipo de datos DateTime cuyo valor corresponde a la fecha y hora del
servidor en el momento de realizar la llamada.

- ServerDate(): Retorna un tipo de datos Date cuyo valor corresponde a la fecha del servidor en el
momento de realizar la llamada.

- ServerTime(): Retorna un tipo de datos Char de 8 caracteres en formato HH:MM:SS cuyo valor
corresponde a la hora del servidor en el momento de realizar la llamada

Consideraciones:

• La fecha y hora del servidor serán tomadas del DBMS principal especificado en el modelo
GeneXus.
• Para los generadores RPG, Cobol y los generadores “locales” Fox, VisualFox y VisualBasic donde
estas funciones no se aplican, se utilizarán las siguientes equivalencias:

Función Equivale a
ServerNow() Now()
ServerDate() SysDate()
ServerTime() SysTime()

• El llamado a estas funciones implica un acceso a la base de datos. Este acceso puede ser costoso
en tiempo, particularmente en ambientes Client/Server. Por esta razón se recomienda utilizarlas
con “criterio”.

• La función TTOC no soportaba el pasaje de parámetros del tipo Date.

El error fue corregido.

• En algunos casos se generaban objetos sin commit.

El problema ocurría solo cuando al generar los objetos existía una SPC pendiente de una
reorganización. Como la reorganización se genera sin tomar en cuenta la Integridad Transaccional,
todos los objetos que tuvieran SPC's pendientes se generaban del mismo modo junto con la
reorganización (por lo tanto no incluían el commit). El problema se introdujo en la versión 6.0 con la
implementacion de N generadores por modelo y la causa era que cuando se cancelaba la
reorganización, se estaba borrando la SPC del directorio equivocado.
El error fue corregido.

• Si una tabla tenía 2 índices con la misma composición, uno como Primary Key y el otro como
Foreign Key (este por ser subtipo del otro), se estaba asignando mal el nombre de los índices. El
índice de la Primary Key quedaba con el nombre del índice de la Foreign Key.

El caso se daba cuando se renombraban los índices de una tabla que tiene como clave un subtipo, ya
que dicha tabla tiene dos índices que en realidad son el mismo (el de clave primaria y uno por clave
foránea a la tabla del supertipo)
El problema era que la clave primaria quedaba con el nombre que tenia el índice por clave foránea (con
la misma definición), y el nombre de este índice por clave foránea quedaba con la convención original
de GeneXus. Esto sucede porque se procesa 2 veces el índice que tiene la misma composición.

IMPORTANTE:
Por esta corrección, cuando se importe con la versión 6 Ev 1 sin patch, o versión anterior, un .XPW
con información de tablas generado con este Patch (y siguientes) dará el siguiente error, ignorable:

Table OPR0011 : OPR0011


----------------------------------------------------------------------
Table - Error: No property found for TAG Unique
Table - Error: No property found for TAG Unique
NEW
Title: 'OPR0011'
...

Esto es porque en este patch se exporta la información de si el índice admite duplicados o no.
• Si se creaba un índice de usuario, y una clave foránea coincidía con el mismo, entonces la foreing
key no se creaba.
El problema era que al borrar el user index tampoco se creaba la foreing key.

Ejemplo:

Se tiene:

A*
B
X
Y

user index por X,Y

Luego se agrega:

X*
Y*

Al agregar esta transacción a la primera, no se modifica pues el índice por clave foránea por X,Y ya
existe como índice de usuario.
Luego se borraba el índice de usuario por X,Y entonces la primera transacción quedaba sin ninguno de
los dos índices.

• No infería atributo secundario en grupo subtipos con clave múltiple.

Se tenían definidos dos grupos de subtipos con clave múltiple en una transacción, y en uno de los
grupos no traía los atributos inferidos del mismo.

Ejemplo:

Las transacciones eran las siguientes:

TRN1 TRN2
EdfNro* EdfNro*
CtaNro* MovNro*
CtaDsc MovCtaIng
MovCtaIndDsc
MovCtaEgr
MovCtaEgrDsc

Los grupos de subtipos son:

Grupo1
EdfNro Subtipo de EdfNro
MovCtaIng Subtipo de CtaNro
MovCtaIngDsc Subtipo de CtaDsc

Grupo2
EdfNro Subtipo de EdfNro
MovCtaEgr Subtipo de CtaNro
MovCtaEgrDsc Subtipo de CtaDsc
• Problema en la importación de tablas con índices renombrados.

No importaba correctamente los nombres de índices si no son los por defecto, y la transacción asociada
tiene como clave un subtipo.
El caso se daba cuando se renombraban los índices de una tabla que tenía como clave un subtipo, ya
que dicha tabla tiene dos índices que en realidad son el mismo (el de clave primaria y uno por clave
foránea a la tabla del supertipo)
El problema era que la clave primaria quedaba con el nombre que tenia el índice por clave foránea (con
la misma definición) y el nombre de este índice quedaba con la convención original de GeneXus.
Esto sucedía porque se procesaba 2 veces el índice con la misma composición.

El error fue corregido.

• Cuando se consolidaba un grupo y algunos de los atributos del grupo tenía un error, como por
ejemplo que no existe el supertipo o el subtipo, no se estaba definiendo ningún otro subtipo del
grupo.

Esto podía traer diferencias en normalización si un atributo subtipo estaba en un grupo junto con otros
atributos que ya no se usaban más en el modelo, pero que sí estaban en el grupo.

El error fue corregido. Se procesan todos los subtipos que se pueden de ese grupo y sólo se ignora el
que tiene error. En el caso que el grupo quede vacío, no se procesa, queda el grupo como estaba antes
de consolidar, si ya existía.

• Si se tenia un atributo que era clave primaria o foránea en una tabla y a la vez era subtipo, el
prompt llamado no era el correcto.

El problema surgió a partir de versión 6.0.


Por ejemplo si se tenía las siguientes transacciones:

VEHICULOS
VehMat*

VEHACO
VehAcoMat* subtipo de VehMat

VEHARRAS
VehArrMat* subtipo de VehMat
VehAcoMat

Si estando posicionado sobre el atributo VehArrMat de la transacción Veharras, se llamaba a la lista de


seleccion (presionando select), en lugar de traer la lista de esa transacción, mostraba la de Vehiculos.
Si se estaba posicionado sobre el atributo VehAcoMat y se llamaba la lista de seleccion, en lugar de
traer la lista de la transacción Vehaco, mostraba la de la Vehiculos.

El error fue corregido.

• Se perdía la información de los master style si no se daba OK al diálogo sin pasar por la página
de los master styles.

El error fue corregido.


• No comparaba correctamente condiciones con Addmth.

La siguiente condición no se evaluaba correctamente:

if (addmth(&fecha1 , 1)) = &fecha2

El problema era que se estaba comparando un tipo de datos Date con uno DateTime y esto no esta
permitido.

El error fue corregido.

Se agrega el siguiente mensaje de error al especificar:

x) The program will not be generated ***********************


Error: Type mismatch in condition addmth(&Fecha1, 1) = Fecha2

• When none no funciona correctamente en Visual basic.

Si se tenía un For each con when none dentro de otro For each o de un Do while, si en una pasada se
cumplían las condiciones y no se ejecutaba el código del when none, en las siguientes tampoco lo hacía
aunque debiera.

Por ejemp lo se tenía:

&I = 1
Do while &I < 10
For each
where ProCod = &I
defined by ProNom
when None
&msg = 'no existe proveedor '+str(&I,4)
msg(&msg)
Endfor
&I = &I + 1
Enddo

Supongamos que en la tabla solo existía un registro con ProCod=1, al ejecutar este código, como en la
primera pasada no se ejecutaba el When none (porque el codigo 1 existía), no se ejecutaba para las
otras 9 pasadas.

El error fue corregido.

• Interlineado en reportes.

En los reportes generados en modo texto, si se tenía un print block dentro de un For Each, al
ejecutarse, agregaba líneas en blanco.

Si si tenía un For Each de "un nivel" ,por ej, que imprime todos los clientes :

FE CLiCod
[CliCod] [CLiNom]
EF

Por cada cliente se agregaban dos lineas en blanco entre un registro y el siguiente.
Si se tenían dos For Each anidados y un print block en el segundo For Each, se agregaban 3 líneas por
cada registro del segundo nivel.

El problema era en la especificacion del mismo, y fue corregido.

• Al especificar un objeto, daba el mensaje ‘Invalid Function’ especificando con Multiples


generadores.

Este mensaje se desplega si se está utilizando una funcion no estandar (no implementada en GeneXus)
y no se configuro la model/property "Function" con el valor "Allow non-estandar function". (standard)

En este caso el error ocurría, si se tenían multiples generadores y en el generador de la reorganización


no se configuró dicha property.
En realidad debería tomar los valores del generador asociado al objeto no del generador de la
reorganizacion.
En particular, si el generador de la reorg es RPG/Cobol (que no soportan funciones no estandar, es
decir, no tienen la property "Functions") lo que se tiene que hacer es editar el MODEL.INI e incluir en
la seccion [Preferences XX] el valor STD_FUNC=NO.

NOTA:
1. xx es el numero de modelo
2. si se modifica cualquier otra preference del generador de la reorg se debe incluir esa linea
nuevamente en el ini.

• Función F5 daba problemas en work panel, en COBOL y RPG.

No permitía deshabilitarla, modificarle el texto, y cambiar la tecla asociada a ese evento. A su vez, los
textos siempre aparecían en idioma inglés independientemente del idioma del modelo.

El error fue corregido.

• Correcciones en el F5 (Run).

• Daba error, cuando se cambiaba la preference Visual Basic Version, de 6.0 a 5.0.
El error fue corregido.

• F5 de VB mostraba 'Visual Basic (32bits) path' en Options


Si se presionaba F5 (Build/Run), desde GX, en la ventana de Options/Web Panels Settings se
mostraba un campo donde se debía ingresar el path de VB 4.0 de 32 bits para compilar Web
Panels. Actualmente ese campo no aparece mas porque el path para compilar Web Panels es el
mismo que el path para correr la aplicación.

El error fue corregido.

• No hacían word wrap el print preview, el print de los listados de atributos y la navegación.

El error fue corregido.


• Mensaje “Help not found”, al invocar el help de las properties de las tablas y de los índices.

El error fue corregido, y ahora invoca correctamente al help.

• Al consolidar, daba problemas si el .XPW no tenía slash en el path (p.ej.: F:gxw.xpw).

El error fue corregido.

• Al editar y posicionarse en las subrutinas con el combo, se posicionaba en la última línea en


lugar de la primera.

El error fue corregido.

• Se perdían los datos en conversión de varchar a longvarchar

Se tenía un campo VarChar y se lo convertía en LongVarChar, al ejecutar la reorganización se perdían


los datos relacionados. Esto no se sucedía si se convertía a la inversa, es decir de LongVarChar a
varChar.

El error fue corregido.

• No permitía editar nombre de evento a asociar a boton de la Toolbar.

Si se tiene una Toolbar asociada a una menubar, y se da doble click sobre un botón de la toolbar
aparece una ventana donde se pueden definir el nombre de evento asociado, el tooltip, y el bitmap
asociado a la Toolbar. Pero no se permitía editar el nombre del evento asociado al botón de la Toolbar.

El error fue corregido.

• Problemas al referenciar fórmula redundante.

Se tenía una fórmula horizontal que hacía referencia a un atributo de la tabla extendida(y éste atributo a
su vez era fórmula, pero redundante). Esta fórmula horizontal era referenciada en el segundo nivel de
una transacción. El problema es que no referenciaba la tabla al nomb rar al atributo.

En este ejemplo particular la estructura era la siguiente:

A1*
A2 = sum(A4)
(B1*
B2
A3
A4 = B2 * A3 )

B1*
B2 = sum( B4 ) redundante
( B3*
B4)
El error fue corregido.

• En un procedimiento con un call en el layout que tenía muchos caracteres ( alrededor de 900 )
daba el siguiente fallo de protección general si se agregaban mas caracteres.

GXW32 caused an invalid page fault in


module GXW32.EXE at 014f:0047a26f.

GXW32 caused an invalid page fault in


module MFC42.DLL at 014f:5f4012a1.

El error fue corregido.


Se soporta un máximo de 4000 bytes para el total de líneas de continuación en layouts, program source
y eventos (es decir donde se aceptan líneas de continuación).

• En reportes no se considera el comando Noskip que estuviese a continuación de un printblock.

El error fue corregido.

• En el diagrama de navegación, indicaba mal el número de linea correspondiente al for each.

El error fue corregido.

• Al editar la sección Platform Specific Information de los Data Views aparecía tres veces el valor
N/A.
El error fue corregido.

• 'No relationship found' en reportes donde se accedía a tablas extendidas de mas de 500 atributos.
La tabla extendida contiene 1500 atributos. Siempre se procesaban los tablas extendidas con los 500
primeros atributos.
El error fue corregido.

• DATA VIEW GENERATOR.

• Se modificó la interfaz de la definición de las Reglas: ahora se dispone de un diálogo basado


en tabs.

• Se implementó un menú en el botón derecho para la sección de conflictos.


Este menú tiene dos opciones: Properties (del ítem seleccionado) y Create Rule (para crear una
regla de alcance particular sobre el ítem seleccionado).

• Se agregaron controles existentes en GeneXus para evitar errores de consolidación.


El Data View Generator no tenía la inteligencia para determinar que caracteres no son válidos para
GeneXus en los nombres de objetos/atributos/índices como para advertir que los objetos generador
con el DVG no consolidarán por determinada causa. Por ejemplo, cuando se importa una tabla
donde uno de los atributos tiene una letra Ñ al momento de consolidarlo en GeneXus se le avisa
que es un caracter no válido.

• Problemas con algunos drivers de Oracle.

Se detectaron problemas con algunos drivers de Oracle: en el catálogo de las tablas que trae el
Data View Generator, aparecían algunas tablas y no todas.
Se detectó el problema con el driver de intersolv 2.12 , sin embargo con el driver de Intersolv 3.11
no ocurre. La causa era el uso de unas funciones no compatibles con esa versión del driver.

El error fue corregido.

También podría gustarte