Entradas

Mostrando las entradas de diciembre, 2013

Movimiento Pro-Respetabilidad de las tareas de Build y Deploy en la Comunidad #GeneXus

Imagen
Si miramos la historia de la forma en que desarrollamos aplicaciones con GeneXus dentro de la comunidad, vemos que dentro del ciclo de vida de las aplicaciones le hemos dado mucha importancia a las etapas de diseño y programación desde hace mucho tiempo. El motivo de ésto supongo que es porque GeneXus está pensado para ser usado en esa etapa fundamentalmente.
Hace unos años, dentro de la comunidad empezamos a movernos para darle al Testing la importancia que se merece y han aparecido empresas y herramientas para encararlos.
Lo miso sucedió con el tema de Seguridad, que al principio cada uno lo resolvia a su manera y luego de una formalizacion, aparecieron herramientas como el Security Scanner, el GAM , etc.

La mejor señal de la evolución de estos temas dentro de la comunidad, es que ambas ameritan tracks propios de charlas en el Evento Internacional GeneXus.

Otro signo es que hay personas que se dedican 100% a la prueba de las aplicaciones y hasta le gusta.

Creo que es el momento de …

Manejo de las interfaces de nuestros sistemas GeneXus. (Manejando cambios de WSDL)

Imagen
En los tiempos que corren, es muy común que nuestros sistemas tengan que exponer sus servicios o sus datos a través de servicios web.

Si bien existen varias formas de implementarlos, en las aplicaciones GeneXus es común hacer procedimientos con la propiedad CALL PROTOCOL como SOAP o también tener objetos Transaction o DataProvider expuestos como web services.

Una vez que se publican dichos servicios web y empiezan a ser usados por otras aplicaciones, si algo cambia generalmente las aplicaciones dejan de funcionar correctamente.

Al desarrollar con GeneXus, el WSDL es generado en forma dinámica y es difícil lograr que el mismo no cambie o enterarse que cambio.

Que cosas puede hacer que cambie el WSDL?
Cambios en namespace de los proceduresCambios en namespace de SDTCambios de nombres en SDT (incluye mayúsculas o minúsculas). Agregar parámetrosAgregar IN: y OUT: en parámetrosGenerar el WSDL con la URL en mayúsculas y en minúsculasCambiar de versión de GeneXusAgregar un elemento a una tran…

PiensoPienso: Cual for each tiene mejor performance? #GeneXus

Imagen
En una base de datos, se tiene la tabla  Logs

* LogId   (autonumber)
   LogDate
   LogObservation

Tiene un millón de registros y una distribución uniforme en los diferentes meses.
Tiene un indice de usuario por LogDate, que es del tipo DATE.

Tengo el siguiente código, en un procedure GeneXus, main, command line.

&ServerDate = ServerDate()&UnMesAtras = &ServerDate - 30 Msg('Caso 1: where LogDate > ServerDate() - 30 ',status) for each where LogDate > ServerDate() - 30 do 'Algo' endfor Msg('Caso 2: where LogDate > &ServerDate - 30 ',status) for each where LogDate > &ServerDate - 30 do 'Algo' endfor Msg('Caso 3: where LogDate > &UnMesAtras ',status) for each where LogDate > &UnMesAtras do 'Algo' endfor Msg('Caso 4: if LogDate > &UnMesAtras ',status) for each If LogDate > &UnMesAtras do 'Algo' endif endfor Msg('Caso 5: if LogDate > ServerDate() -…

KBDoctor - Comparador de Navegaciones.

Imagen
Desde hace tiempo, existe una herramienta para Comparar Navegaciones en KB GeneXus. La misma esta pensada para ser usada comparando navegaciones de objetos en diferentes versiones de GeneXus. Es de mucha utilidad, cuando se realizan cambios de versiones, pero no me resultaba practico para el uso diario con GeneXus X.

Decidí usabilizar un poco la herramienta y agregarle al KBDoctor (versión 10.8 o superior), las opciones de generar una foto de las navegaciones es un momento dado y luego utilizar alguna herramienta de comparación de archivos de texto para realizar la comparación (es la misma metodología que se usaba con la herramienta anterior).

Que ventaja tiene este enfoque?
El resultado es exactamente el mismo que antes, pero resulta un poco menos engorroso el procesamiento de los archivos de navegación.

Ademas para KB con varios generadores, con la herramienta anterior se tenian que realizar tantas comparaciones como generadores, pero ahora unifico todo en una misma carpeta.

Como fun…