GeneXus Warning Manager

Cuando estoy haciendo migraciones de GeneXus, es habitual que tenga que cambiar muchas veces la forma que manejo los warnings y errores que envía GeneXus.

En las primeras etapas de la migración me concentro en los errores mas graves.
Luego de solucionados estos, pasamos a los errores propios de la migración, por ejemplo sentencias que tengamos en lenguaje nativo dentro de nuestros objetos y por ultimo ya paso a errores los warning que de controles de tipos y cantidades de parámetros.

Esto implica que tengo que camibar las propiedades de la KB:

Disabled warnings
Warning treated as error

poniendo y cambiando los valores de los códigos de errores, los cuales no son fáciles de recordar.

Para facilitar esta tarea, decidi hacer una recolección de todos los errores y warnings que encontré y los puse en una planilla electrónica en la nube.

En dicha planilla, permite hacerle click a dos columnas que arma un string con los códigos de los warnings para deshabilitarlos o para pasarlos a errores. Luego hago Copy/Paste sobre las propiedades (aun no es automatico el cambio de la propiedad)

Como es una planilla web, la misma puede ser ejecutada desde dentro de GeneXus, haciendo el trabajo mas fácil.

Estoy en proceso de migrar 7 KB de 7.5 a Ev2, para un cliente, y esta sencilla planilla me permitio ahorrar bastante tiempo.


Para usar una versión publica de la planilla, pueden poner el link

https://docs.google.com/a/concepto.com.uy/spreadsheet/ccc?key=0AmiF9WWJN0VvdFpOenZvTW1kYUpRSHZ4N2U4STRKeGc#gid=0

en el campo Address de la Start Page de GeneXus y van a poder utilizarla.

Como es publica, cualquier va a poder modificarla, por lo que no me hago responsable de los resultados.

Comentarios

  1. Hola Enrique, qué tal? Tengo una KB grande y tengo una advertencia que se me dificulta encontrar la solución, por casualidad sabes que puede ser?

    spc0037 ATT cannot be inferred

    Tengo 4 TRN, por ejemplo: TRN1, TRN2, TRN3 y TRN4. La tabla Base es la TRN1 donde esta llamada a un atributo inferido por subtipo a la TRN2 y está también llamada por un atributo inferido por subtipo a la TRN3 y finalmente esta también llama por subtipo a la TRN4, en la TRN4 se encuentra finalmente el atributo.
    PD: De la TRN1 llego a la TRN4 por tabla base - extendida, sus relaciones son por subtipos.
    *Puede ser que la relación se pierde cuando son muchos subtipos?

    ResponderBorrar
    Respuestas
    1. Es dificil sin verlo en detalle diagnosticar el caso.
      Cuatro niveles de subtipo no son problema, en otros casos que conozco. Lo primero, revisar el modelo de datos y subtipos.
      Tambien, deberias revisar las reglas de la trn, y ver si no tiene algun nocheck() que sea la causa de este comportamiento.
      La otra es empezar una trn vacia e ir agregando niveles y atributos de a pocos hasta detectar cuando deja de inferirlo.

      Borrar
    2. Gracias por tu respuesta Enrique, consulta:

      En el Excel que adjuntas los códigos que están con tickets en la columna "Warning treated as error" se deberían trabar como error?, es decir, se deberían solucionar?

      y solucionar solo al migrar o también en el trabajo del día a día?

      Saludos,

      Borrar
    3. Recomiendo fuertemente minimizar (o eliminar totalmente) los warnings que tienen la KB al hacer build all.
      El desarrollador que se acostumbra a que no hay ningún warning cuando programa, cuando nota uno nuevo, le llama la atención y generalmente los corrige.
      Variables no definidas, parámetros de mas o de menos, parámetros IN: modificados, funciones deprecated, etc son cosas que generan warning y muy probalemente generen errores en ejecución. Ese tipo de warnings, los trato como errores.
      Indices que GeneXus piensa que faltan y dan warnings, en tablas chicas no son necesarios y los analizamos por otro lado, por lo no los trato ni siquiera como warning.
      Tambien depende de la etapa en que este la KB. Una KB que recién se esta desarrollando o modelando, tolera algunos warnings, que al entrar a producción ya no deben tolerarse.

      Borrar
  2. Al tener menos warnings, la probabilidad de tener problemas disminuye mucho. Trato de tener una kb con un build all sin ningun warnung, de forma que cuando aparece uno, le llame la atencion a quien programe.
    Si hay muchos, entoces nadie los mira.
    En nuestras kb, ponemos muchos warnings como errores.

    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.