KBDoctor - Nuevas consultas para modulos e integridad transaccional

Agregué algunas opciones al KBDoctor para poder manejar la modularización de KB.

List Modules Errors. 

Cuando hacemos cambios en la visibility de los objetos y/o cambiamos los objetos de modulos, no detecta automáticamente los cambios.  Al menos en Evo3, hay que hacer un rebuild para poder detectar los errores y eso demora muchisimo.
Este reporte lo que lista son los objetos (tablas y programas) privados que estan siendo accedido desde afuera del modulo.
Tambien las tablas publicas que son actualizadas fuera del modulo. Esto no es un error para Genexus, pero es algo que es bueno evitar.
Por ultimo, tiene una lista de los objetos que seria bueno mover para el modulo, pues solo usa tablas y objetos de este modulo.

List Tables in modules. 

Permite lista un conjunto de tablas, y muestra si son privadas o publicas, en modulo esta y cuales son las transacciones que la generan. Tambien muestra la transaccion que GeneXus eligio para definir el modulo de la tabla. Toda esta informacion, es bastante dificil de conseguir y espero que en las proximas versiones de Genexus sean mas faciles de ver.

Build Module Objects y References. 

Esta opcion permite hacer un build with this only de todos los objetos del modulo, mas todos los objetos que hacen referencia a algun objeto del modulo, mas todos los objetos que hacen referencia a alguna tabla que esta en el modulo.

List public URL/URI

Lista todos los webpanels / Transacciones / Procedimientos main.
Esto es util, para sacarla antes y despues de modularizar, de forma de detectar todos aquellos programas que cambian la URL de acceso o el nombre del exe/class a ejecutar para poder ajustar aquellas herramientas externas que usan nuestro sistema. Tambien sirve para ajustar la documentacion del sistema.

Module Dependencies

Lista todo lo externo que necesita un modulo para ejecutar.
Es util para cuando quiero llevar un modulo de una KB hacia otra, para saber todo lo que voy a necesitar llevar o adaptar en la otra KB.

Split main object. 

En el proceso de modularizacion, es comun tener que mantener el nombre de algunos objetos, que estan siendo usado desde otro sistema de terceros, por ejemplos procedures command line, web services Rest o SOAP.
Esta opcion, lo que hace es crear un objeto que mantiene el nombre anterior, y mueve el objeto viejo con otro nombre al modulo correspondiente y lo llama con los parametros originales..

List Module Statistics

Permite sacar algunas estadisticas basicas de los diferentes modulos, como cantidad de objetos, cantidad de objetos publicos, cantidad de tablas, cantidad de tablas publicas y en el futuro, tendra tambien medidas de la calidad de la modularizacion de toda la KB. Hoy tengo un indicador, pero estoy teniendo problemas cuando la KB tiene submodulos, pues algunos objetos se estan contando mas de una vez. Cuando tenga tiempo voy a arreglarlo.

Move Transaction to folders.
(esta opcion esta deprecada y va a desaparecer en el futuro)

Con estas opciones es bastante mas facil la tarea de modularizar una KB existente.

Estudiar Integridad Transaccional

Tambien agregue otra opcion, pero bajo Objects, para poder ver los arboles de llamadas y ver cuales son los objetos que hacen commits.



El estudio de que objeto hacen realmente commit y si hacen commit en otra UTL y demas, es un proceso bastante complejo.

Espero que le pueda servir a alguien mas.  Voy a espera para subirlo hasta despues del evento, pues en esto dias previos al Evento Genexus, todo el mundo esta bastante alborotado y con mucho trabajo.

Comentarios

  1. Bueno días.
    Necesito, me de una mano con un inconveniente que tengo con KBDoctor; con la opción "remove Attribute with not table".
    Cuando la utilizo me muetra un mensaje de Error: referencia a objeto no establecida como instancia de un objeto (KBDoctor).
    Y, según la obión del mensaje que elija me cierra Genexus.
    Qué me está haciendo falta configurar o establecer cuando utilizo esta Opción?!?
    Estoy trabajando con Genexus Evo 3.
    Saludos cordiales

    ResponderBorrar
    Respuestas
    1. Podes mandarme el log que genera (apretando el botoncito de abajo a la izquierda) y puedo ver donde esta cancelando a ealmeida @ concepto.com.uy
      Seguramente sea una att que no esta en ninguna tabla, pero que esta siendo usado en un SDT y no se puede salvar el SDT por algun motivo.

      Lo que podes hacer, es revisar que atributo esta procesando en el Output de GeneXus.
      Mirar cuales son las referencias de dicho atributo y sacarlas a mano.
      Luego podes volver a correr el KBDoctor, y va a poder borrar dicho atributo y seguira con los proximos.

      Enrique

      Borrar
    2. Buenas y Santa ...
      Gracias por la pronta respuesta.
      Y, sí ... Efectivamente era lo que me comentaba; un Att que ya no existe; estaba siendo usado como Type en uno de los elementos del SDT.
      Cambie el Type por un Dominio que tenemos definido. Volví a correr el KBDoctor y ahora tengo el reporte de los Atts que no tienen referencia alguna dentro de la KB.
      Muchísimas gracias
      Un saludo cordial

      Borrar

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.