GeneXus Data Providers - Segunda Parte
Hace unos meses publiqué el post GeneXus Data Providers, en el que comentaba que si bien son objetos muy poderosos, no son fáciles de entender, al menos para mi nivel.
Intentaba mostrar como era muy poco intuitivo realizar rankings, en un modelo de datos sencillo (el mas sencillo que se me ocurrió) y tratar de hacer un poco de ruido en la comunidad GeneXus con los Data Providers, que me parece que son objetos que podrían ser mucho mas usados, si fueran mas faciles de entender.
Tuve una charla con Gaston y Nicolas para intercambiar ideas sobre este tema y de la misma salieron varias conclusiones valiosas.
En la misma, hablamos sobre solución con los objetos actuales y también sobre el enfoque en versiones posteriores de Genexus, con Transacciones dinámicas y sus cambios.
Intentaba mostrar como era muy poco intuitivo realizar rankings, en un modelo de datos sencillo (el mas sencillo que se me ocurrió) y tratar de hacer un poco de ruido en la comunidad GeneXus con los Data Providers, que me parece que son objetos que podrían ser mucho mas usados, si fueran mas faciles de entender.
Tuve una charla con Gaston y Nicolas para intercambiar ideas sobre este tema y de la misma salieron varias conclusiones valiosas.
En la misma, hablamos sobre solución con los objetos actuales y también sobre el enfoque en versiones posteriores de Genexus, con Transacciones dinámicas y sus cambios.
CASO 1: Ranking por Local. Ordenar por una formula.
Este caso parece sencillo de solucionar, pues es una limitación en la sintaxis de GeneXus, que no permite escribir y salvar el ordenar por una formula. Podría ser solucionado relativamente rápido.CASO 2: Total por Fecha
Según Gaston, el caso de agrupar por un atributo que no tenga tabla asociada, como en el caso de las fechas, es un Bug y lo podrían corregir en próximas versiones.CASO 3: Suma por Local, con Filtro.
En este caso, hablamos de la dificultad de determinar el criterio con que GeneXus elige los atributos para realizar las agrupaciones GROUP BY.
Según me contaron, están pensando en agregar la palabra clave UNIQUE de forma que el desarrollador defina claramente cuales son las atributos por los cual quiere agrupar.
La palabra clave UNIQUE en el for each, se traduciría por DISTINCT, en caso no tener formulas de agregación como sum(), avg(), etc o por GROUP BY en caso de si tener dicha formula.
Creo que esto devuelve el control a los desarrolladores, de algo que era bastante impredecible.
A mi me resultaba bastante difícil saber que agregando un filtro con atributos agrupaba por criterios totalmente diferentes.
Nicolas nos mostró ejemplos de como serian las Transacciones Dinámicas y el Tab Data ** para resolver cada uno de estos ejemplos, donde cada una de estas tendrían salidas de SDT.
Me parece que el resultado del post fue muy bueno, pues me permitió conocer cuales eran los planes de Artech para solucionar estos problemas, que de otra forma, hubiese demorardo bastante mas en conocerlos. Creo que dichos cambios van a hacer Genexus mas USABLE.
Recomiendo que vean la charla de Gustavo Brown del XXII Encuentro GeneXus, donde explican algunas de estas nuevas funcionalidades que vendrán en próximas versiones.
** Seria bueno encontrarle un nombre mejor, que no dependa de la implantación actual. Seria bueno que las transacciones se dividan en varios objetos y no tengan tantos tabs. Hoy ya estan demasiado cargadas.
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.