KBDoctor - Nuevos tratamientos para viejas enfermedades.

Nuevos Reportes del KBDoctor. 

Hace tiempo que no posteo nada y el motivo principal es que he estado haciendo algunas migraciones de KB grandes, que me han tenido divertido. Para hacer mas leves estas migraciones le agregué algunos reportes al KBDoctor.

Class referenciadas por la aplicación y no están en el Theme
Esto es generalmente motivo de errores en la presentación de la aplicación. Es difícil saber si una class de la aplicación esta o no el el theme porque puede estar con varios nombres influenciados por los CSS selectors. El programa aplica una heurística sencilla, para detectar los casos mas flagrantes.
Para hacer esto SE TOMAN EN CUENTA TODOS LOS TEMAS de la KB. Esto es bastante mejorable, pero por ahora, lo voy a dejar asi.

Class que estan en el Theme y no son referenciadas. 
Estas se podrían sacar, achicando el CSS generado y haciendo mas fácil el tráfico y la personalización del Theme.

Atributos solo en transacciones. 
Se listan los atributos que solo están en transacciones y no son accedidos por ningún otro objeto. Esto quiere decir que el atributo se guarda en la base de datos, pero el mismo no es consultado nunca.
Esto no necesariamente es un error, pero es algo que convine revisar cada tanto.
Las transacciones que son Business Component se tratan como objetos normales, o sea si una transacción es BC, esta bien que dicho atributo este solo en ella.

Atributos Formula
En GeneXus X, no es fácil tener una lista de todos los atributos formulas de la aplicación, como se hacia en 9.0.
En este reporte ademas se listan las tablas en el cual dicho atributo es redundante. Sirve para identificar algunos atributos formulas que se dejaron de usar con el correr del tiempo.

Dada una tabla, que transacciones la generan. 
Se recorren todas las tablas del sistema y se listan que transacciones las generan.
En particular, se diferencian entre las transacciones que se generan y las que no.
Si una tabla es generada por transacciones generables y no generables, es posible que se pueda eliminar alguna de las no generables.

Ancho de Tablas. 
Se listan todas las tablas de sistema, y se agregan la cantidad de campos en la clave, la cantidad de campos, la suma de la longitud de los campos, la cantidad variable de dicha longitud (campos varchar y longvarchar).
Sirve para darle algo de racionalidad a las discusiones con los DBA, sobre lo que ocupan las tablas y tratar de dejarlos contentos.

Nuevas tareas sobre la KB. 

Agregué también la sección de cirugía sobre la KB, que permite hacer cambios para arreglar cosas dentro de la KB.

Borrar atributos que no están en ninguna tabla.
Se recorren los atributos que no están en ninguna tabla, se saca de las referencias (por ejemplo en variables) y se intenta borrar. Si no se puede borrar, se listan en que objetos siguen existiendo para que se arregle a mano. No es nuevo, pero tiene algunos cambios.

Search and Replace en Transacciones, Workpanels, Webpanels y Procedimientos. 
Se busca un texto y se remplaza por otro dado, en los objetos seleccionados, cambiando reglas, eventos, web form y source.
Tengo ganas de agregarle busqueda y cambio por expresiones regulares, pero aun no lo hice. Tambien falta cambiar los layout de los reportes y los winforms.

Agregar IN: a todos los parámetros que no tengan IN:/OUT: o INOUT:
Recorre todos los objetos que tengan regla parm y le agrega IN a todos los parámetros.
Esto es seguro que es un ERROR, pero ayuda a hacer la tarea de agregar IN: y OUT a los parámetros  acelerando la tarea.
Luego hay que cambiar los parámetros que son solo de salida y ponerle OUT o INOUT:
Es para usar con MUCHO CUIDADO pues puede ocasionar que el sistema funcione diferente.

Forzar la generacion de los fuentes de varios SDT. 
Cuando se tiene una KB grande y se corta un buidl all, es común que queden SDT sin generar, que dan errores de compilacion.
Esta opción lo que hace es generar un procedure que tiene los SDT seleccionados como referencia y los genera para los diferentes ambientes que tenga la KB.
Para usar solo en casos de emergencias.

Limpiar mi KB lo mas que se pueda. 
Esta opción marca los objetos no alcanzables, le borra las variables, los eventos, las reglas y el form y luego intenta borrarlo. Si no puede, es porque dicho objeto aun es referenciado.
Repite la tarea anterior tantas veces como sea necesario, hasta que no pueda borrar ningún objeto.
Solo para usar en caso de estar depurando una KB y hay que tener un buen backup de la misma.

Inicializar o limpiar objetos. 
Permite seleccionar un conjunto de objetos (webpanels, transacciones, workpanels y procedimientos) y les borra las reglas, los eventos, las variables y el webform.
Es util cuando se tiene una transaccion y se le quiere aplicar un patron nuevo o también si se quiere borrar objetos eliminando referencias entre ellos antes.
Para usar con la supervisión de los padres.

Los ansiosos pueden bajarla para la Ev2 desde aca  (tienen que hacer File/Download).

En los próximos días, en su marketplace mas cercano.

Comentarios

  1. Jose Antonio Hernandez21 de enero de 2013, 1:51 p.m.

    Hola muy interesante tu herramienta, tendras la version para la evo 1

    ResponderBorrar
  2. Aun no libere la version, que va a estar para la Ev1 y la Ev2.
    Tengo que seguir probando y mejorando algunas cosas.

    En http://marketplace.genexus.com/product.aspx?kbdoctor podes bajar la version liberada actual, que no tiene todas las nuevas funcionalidades, pero igual te puede servir.

    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

Aplicación monolítica o distribuida?

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

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