Encontrar objetos con errores y warnings en GeneXus.

Para saber que objetos tienen Warnings o Errors en GeneXus, se logra si se hace un BUILD ALL o un REBUILD ALL y l lista de los objetos se pierde al hacer la primera especificación posterior al BUILD ALL.
Cuando se trabaja con KB grandes, este proceso de build all puede demorar varias horas, lo cual hace muy difícil el ciclo de corregir los objetos que tienen warnings. 

Para tratar de solucionar esto, desarrollé una opción del KBDoctor, que permite ver cuales son los objetos que tienen errores, warnings y agregué también los objetos que tienen navegación no optimizada que se resuelve en el cliente que son bien difíciles de detectar, pues solo muestran un iconito en la navegación.

La forma de usarlo es:


 Esta opción, utiliza una heurística (no siempre correcta) recorriendo los archivos de navegación y buscando en ellos determinados patrones que indiquen si hay algún problema. 

Como se base en los archivos XML que están en los directorios NVG (de las navegaciones) puede ocurrir que se produzcan falsos positivos, donde algunos objetos sin errores son listados como con problemas. 

Los problemas conocidos son por ejemplo, cuando se tiene un objeto con errores, y el mismo se elimina de la KB, pero el archivo de la navegación va a seguir existiendo. En este caso, se muestra el error, pero se indica que el objeto no existe mas. 

Un poco mas complicado, es cuando se tienen varios generadores y en alguno de ellos el objeto da errores o warnings. Luego el objetos deja de ser generado por dicho generador, pero sigue existiendo el archivo de navegación en dicho generador. En este caso, se muestra el objeto como con errores, pero al especificarlo va a estar correcto.

Si en algun momento tuve problemas de definicion de subtipos y luego los soluciono, se sigue mostrando como error, pues GeneXus no borra el archivo cuando se solucionan dichos problemas.

Con el generador de Smart Devices muestra los warnings de algunos elementos que no son objetos, sino que son partes de la instancia, con lo no es trivial encontrar que es lo que hay que corregir para evitar dicho warning. 

Al correr, se genera un html que se muestra en la startpage. 


En dicha pantalla, se muestra una clasificación del error/warning, luego el objeto (con un link para abrirlo), se muestra el usuario que lo modifico y se extrae los mensajes de error, lo cual ayuda a identificar la solución del problema. 

En KB grandes y sobre todo cuando hacemos migraciones, este reporte ahorra bastante tiempo. 

Lo voy a hacer  para Evolution 2 y para la Tilo. 

Me falta programar la posibilidad de salvar una lista de los objetos con problemas de un momento dado (tomada como linea base) y luego en próximas corridas mostrar cuales son los objetos nuevos, o sea que empezaron a tener warnings o errores. 

Tambien me tengo que arreglar el caso en que los objetos cambian de generador. 

Si alguien la quiere, me la pide. 
La subo al marketplace, cuando termine con los ajustes. 


Comentarios

  1. Somos desarrolladores con genexus desde 1990, y últimamente en la versión ev3 , cuando corregimos un error en una grilla, se genera otro error donde no lo había y en otra parte del programa. Alguna idea al respecto
    Atte.
    JR Videla

    ResponderBorrar

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.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.