KBTools - GeneXus Command Line Utilities


A lo largo del tiempo he ido haciendo, juntando y repartiendo algunos utilitarios para el manejo de GeneXus a través de la linea de comando.

En intercambios recientes con colegas, algunos planteaban la necesidad de hacer determinadas tareas,  las cuales nosotros en Concepto ya teníamos implementadas.

Me parece una buena idea, poner a disposición de quien lo necesite algunas herramientas para automatizar algunas de estas tareas. Espero que puedan servir de insipiracion para proyectos que necesiten hacer Integración Continua con GeneXus o trabajos similares.

Quedo publicada en el Marketplace Genexus, las KBTools (aun no están aprobadas, pero supongo que alguien las aprobara en breve)

Esta primera versión (2015.12) incluye:

KBCompress
Abre y compacta las KB que se encuentre bajo un directorio dado.  Funciona a correctamente a partir de la Evo3.
Reorganiza los indices dentro de la base de datos.

KBCompressMDFFiles
Modifica la base de datos, pasando las mismas a RECOVERY SIMPLE y luego realiza un SHRINKDATABASE de las mismas.
Sirve para liberar espacio ocupado por los archivos LDF y MDF en los cuales se ha borrado versiones.

KGGenerateDeployUnits (SOLO GENERADOR C#)
Copia lo generado por Genexus a una estructura para que sea mas fácil su instalación. No copia los archivos que no deben instalarse.



KBProcessOutputLog (SOLO GENERADOR C#)
Procesa la salida (Output) de compilación de Genexus y arma una lista de objetos que tuvieron errores.
Con esta lista separada por comas, es mucho mas rapido hacer regenerar dichos objetos en GeneXus.

La forma de usarlo es:

1) En GeneXus, hacer BUILD ALL y cuando termine con errores, hacer un SAVE AS desde la ventana Output a un archivo.
2) Ejecutar el KBProcessOutputLog e ingresar el path y nombre del archivo salvado en el paso anterior.
3) Se tendrán una lista de nombres de objetos separados por punto y coma. Se deber tomar dicha lista y eliminar el ultimo ;
4) En GeneXus, pegar dicha lista en el filtro de Work with objects y mover los objetos al working set y luego hacer un BUILD WITH THIS ONLY de dichos objetos. (la opción de work with this only debe estar para forzar la generacion).
5) Esto permitirá tener una lista mucho mas reducida para analizar los errores que siguen quedando en la KB.

KBRebuild
Pide el nombre de un directorio de la KB y BORRA TODO LOS SUBDIRECTORIOS del mismo y los archivos *.ari
Hace un REBUILD ALL

KBSaveReorganization (SOLO GENERADOR C#)
Salva los archivos necesarios para la ejecución de una reorganización en un directorio con FechaHora.
Genera los scripts para correr la reorganización forzada con pantalla, la reorganización forzada batch y para contar los registros de las tablas a reorganizar.

KBUpdateBuildAll
Si la KB esta conectada a GXServer, este utilitario permite hacer un Update desde GXServer y luego hacer un BUILD ALL de la KB.

KBCompareSchema
Compara el schema de la base de datos con el schema que GeneXus espera. Saca un listado bastante primitivo de las diferencias.

KBExport
Pide el nombre de un directorio, busca todas las KB que hay en los subdirectorios y realiza un export de todos los objetos de la KB en un archivo con fecha y hora.

KBDelete
Borra una KB, todos sus directorios y la base de datos de la misma.

Las KBTools no van a tener sporte de ningun tipo.
Antes de usar las KBTools debera hacer respaldo de todas las KB.

Sientase libre de modificar las KBTools a su gusto. Pueden ser buen punto de partida para nuevas herramientas.  En proximas versiones estare agregando herramientas para Deploy y alguna otra cosa.









Comentarios

  1. Hola Enrique, primeramente agradecer por compartir herramientas que facilitan el trabajo al desarrollo con Genexus, quiero ser puntual en la herramienta kbclone estoy probando pero me da error al clonar los archivos mdf y ldf, estos no se copian al modelo clonado, esperando contar con su ayuda quedo agradecido

    ResponderBorrar
  2. Revisa el archivo parameters.ini, porque seguramente esta mal el path donde tenes instalado el SQLServer y el nombre del server.

    Busca el SQLCmd.exe y pone el directorio donde esta en la variable SQLServerDir del archivo parameters.ini de las KBtools.

    SQLServerName=.
    SQLServerDir="C:\Program Files\Microsoft SQL Server\150\Tools\Binn\"

    ResponderBorrar
  3. Gracias por responder, He modificado la ruta SQLServerDir="C:\Program Files\Microsoft SQL Server\130\Tools\Binn\" en mi caso SQL SERVER 2016 pero sigo sin encontrar la solución.

    ResponderBorrar
  4. Seria bueno que lo corras y que mandes la salida del error, para poder ayudarte.
    Los motivos pueden ser varios. Tal vez no esa pudiendo hacer el backup de la base en foram correcta o no esta encontrando el MDF.

    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.