Entradas

Mostrando las entradas con la etiqueta extensions

Nueva version de KBDoctor (10.9.1) - Compatible con Evolution 3.

Imagen
Subí al marketplace de GeneXus una versión del KBDoctor (10.9.1) compatible con Evolution 3 (también con Evolution 2).  El marketplace tiene un proceso de aprobación que se demora algunos días.. Empece hace poco a trabajar un poco mas en serio con Evolution 3 y por me hice de un tiempito para hacer los cambios necesarios para que compile y funcione mas o menos bien. Esta version tiene lo mismo que la version anterior, y le agregue un par de reportes nuevos * Objetos que se generan WIN y WEB (cuando se tiene mas de un generador) * Procedures que llaman a Transacciones y Webpanels (para detectar posibles problems de diseño) * Objetos Complejos (que tienen archivos de especificacion grandes) * Un link al help en el wiki Ya estoy necesitando algunos reportes nuevos para poder solucionar problemas con los Modulos y se lo voy a estar agregando en las próximas semanas. Lo que ya tengo medio hecho es el fijar todos los objetos de un modulo como privado a menos que sea llamado ...

KBDoctor 10.4

Imagen
Salió y se puso a la venta la versión 10.4 del KBDoctor. Tiene varias funcionalidades nuevas, que pueden servirle para el desarrollo de aplicaciones, en particular para las grandes KB. Tiene algunas funcionalidades que MODIFICAN Y BORRAN objetos de la KB, por lo que les recomiendo que antes de usarla hagan un backup de su KB, pero puede ahorrarle unas cuantas horitas de trabajo. Nuevos Reportes  - Tablas y objetos que hacen Update/Insert/Delete/Read  - Attributos solo en transacciones, se excluyen los BC.  - Se agrega Borrado de variables en toda la KB  (Gracias a Dvelop que me prestó el codigo para esto!!).  - Search and Replace en Objetos.  - Clases Faltantes en el Theme y Clases sobrantes en el Theme  - Generacion Forzada de SDT  - Tablas -> Transacciones que las generan  - Remover atributos que no estan en ninguna tabla.  - Atributos Formula  - Se agrega el CleanmyKBAsMuchAsPosible.  - Se agrega AddIN...

Funcionalidades que me gustaría agregar al KBDoctor (continuación)

Imagen
Search&Replace Poder poner un texto a buscar y otro a sustituir y cambiarlo en todos los objetos. El cambio puede ser en el código, en las pantallas, en las propiedades. Seria opcional buscar con el Indice que GeneXus ya posee, o que recorra todos los objetos, los distribuya y si el texto esta en dicho objeto, lo modifique y vuelva a consolidarlo. Seria muy util, para muchas situaciones, por ejemplo para eliminar el &Planilla.UseAutomation, que no se porque motivo el Search de Genexus no lo encuentra.

Funcionalidades que me gustaría agregarle al KBDoctor.

Imagen
Hay un conjunto de funcionalidades que me gustaría agregarle al KBdoctor y dado el ritmo de trabajo que preveo para este año no voy a poder encarar. TRNCleaner. Toma una transacción que no esta siendo usada (solo se usa para crear la tabla) y le saca todas las reglas, pantalla, documentación. Opcionalmente puede eliminar también formulas no redundantes o atributos que no pertenezcan a las tablas básicas de la transacción. También debería marcarla como no generable, para que no jorobe mas por un tiempo. ThemeCleaner. Dado un tema, borrar todas las clases no referenciadas por ningún objeto de la KB, tomando en cuenta la jerarquía lógica. ThemeFixer. Recorrer todos los objetos WEB y corregir todos aquellos controles que tengan clases que no existan en el tema asignado, poniéndole la clase por defecto para dicho control. SDTFixer. Dado un SDT, generar un proc que define una variable basado en dicho SDT, y lo genera forzado para todos los ambientes del modelo. Luego borra ...

Idea para Extension GeneXus para copiar datos para pruebas.

Imagen
En estos días, estoy en un proyecto que esta migrando un conjunto grande de KBs desde SQL server 2000 a SQL Server 2008. ** Una de las cosas que tuve que hacer (muchas veces!), es poder generarme un conjunto de datos razonables para poder probar, tareas bastante habitual entre los que tienen que testear. Tenía una base de datos en SQL Server 2000 con muchos GB de datos y debía generarme bases de datos mas chicas para poder usarlas en mi notebook para hacer pruebas en SQL Server 2008. Estaría bueno tener una extensión que ayude a dicha tarea. Formalizando el problema: Tenemos una KB, un objeto main a testear y dos bases de datos (una de producción con datos y otra usada para testear). Generar una base de datos de pruebas, que tenga todos los datos que necesita el programa a testear para que ejecute en forma correcta. El programa, debería ver todos los objetos no main, alzanzables desde el objeto a testear y armar la lista de tablas utilizadas y sus operaciones (select, update, delete)...

ASP.NET Charting Control

Imagen
No mire la documentación aun, pero tiene buena pinta como para hacer un User Control. Hay mas información y mas ejemplos ACA..

23 Ideas para GeneXus Extensions (2 años después)

Hace cerca de 2 años, publique el post   23 Ideas para GeneXus Extensions . En ese  momento estabamos recien entendiendo las Extensiones, para GeneXus X. Me puse a repasar la lista (Quedan en azul mis comentarios actuales) 1)  Tools / Command Prompt  (ésta la va a hacer Marcos Crispino ) ( Ya la hizo y quedó buena) 2)  Generar Triggers de Auditoria  para las tablas elegidas (esta la deberían hacer Marcos, Alexander, Ruben y Sergio) (No se hizo) 3)  KBIndexWizard. Generar los índices que se necesitan para correr bien la aplicación (Revisar todas las especificaciones y ver que índices pueden necesitarse, se necesita tener cardinalidad de tablas y algunas cosas mas, es mas importante el where que el order, etc) (No se hizo, pero las base de datos han empezado a brindar este tipo de herramientas, con sentencias y con la cardinalidad de las tablas, sugieren indices a crear) 4)  IAR con estimacion de tiempos . Dada una reorg y una KB, generar los programas necesarios para poder evaluar en ...

Modularizando una Knowledge Base

En los días anteriores me tocó participar con Ruben, Alejandro y Gustavo en las instalación de un sistema en el exterior. Cuando uno está con amigos en el exterior, las noches se convierten en ámbitos de discusión de temas variados. Iba a decir tertulia, pero no me gusta esa palabra. Uno de los temas que discutimos, era la de como forzar el tener aplicaciones GeneXus, mas modularizadas. La idea era poder definir un conjunto de funcionalidades dentro de un módulo y que la funcionalidades de dicho modulo solo pueda ser accedido a ella a través de interfaces conocidas y dominadas. A mi me gustaría contar con : Una forma de agrupar objetos en módulos. Por defecto, debería ser el nombre de la carpeta raíz. También se deben poder incluir las TABLAS como objetos del modulo. Marcar APIS/Objetos publicos. Poder indicar que algunos objetos pueden ser invocados desde fuera de mi modulo. Por ejemplo si tengo un modulo de desposito/stock, debo habilitar que la funcion que da el saldo de de un prod...

GeneXus y sincronización de objetos

Imagen
Estaba leyendo SSE , que es un protocolo parecido a RSS que permite sincronización en ambos sentidos y se me ocurrió una idea sencilla que puede funcionar. Si todos los objetos GeneXus, tienen una propiedad adicional, que contiene la url del feed de donde fue generada, podría implementarse algo bastante sencillo para mantener sincronizados objetos que se desarrollan en diferentes KB. Escenario 1: KBCore: Objetos principales del sistema KBMdl: Tiene todos los objetos de KBCore y algunos objetos adicionales. Entonces todos los objetos de KBCore, tendrían una propiedad que podría tener el valor "https://servidor/kbcore/kbrss.aspx? , , , ", que es la URL que debería llamarse para recuperar un RSS (o SSE) que (opcionalmente) incluye el distribute de dicho objeto. Cuando exporto objetos de KBcore y los importo en KBMdl, estos se importan con dicha propiedad, por lo tanto esos objetos van a quedar "marcados" como que no son mantenidos desde la KBMdl. Que ventajas tiene est...

GXUnit - Presentaciones finales de proyecto

Imagen
Hoy (26/11/2007) a las 18:00 y a las 19:30 horas en el Salon Rojo de Facultad de Ingeniería ( UdeLaR ) se estarán haciendo las presentaciones finales de los dos proyectos de GXUnit . Son dos grupos, que realizaron extensiones de GeneXus Rocha y dos implementaciones diferentes (unos agregando partes a los objetos y otros creando objetos nuevos) para la realización de pruebas unitarias en objetos (por ahora solo procedimientos) de una KB Genexus. Aún falta trabajo para que sea un producto terminado y usable, pero es un punto de partida excelente para continuar en el futuro. Quedé contento con el resultado de dichos trabajos. En los próximos días deberían subir los proyectos a GXOpen. UPDATE: Ambos grupos aprobaron el curso y la presentación con felicitaciones del tribunal examinador. Ahora hay plazo hasta fin de Febrero, para evaluar el producto, donde podremos probarlo un poco mas. Por mis pruebas, ya cumple con lo que se habia planteado en el alcance primario. Uno de los grupos implem...

GeneXus Extensions: Diagrama de modulos (o tablas agrupadas)

Imagen
Esta es una idea para alguien que quiera hacer una extensión para la Rocha, que puede ser muy útil, para entender KB grandes (de cientos de tablas). La idea es poder agrupar un conjunto de tablas (las que pertenecen a un modulo) y mostrarlo como un unico nodo del grafo. Tambien habría que juntar todas las relaciones a ese conjunto de tablas y tratarlas como una sola flecha. Otras funcionalidades deseables serían: al darle doble click al nodo permitiera ver un diagrama con las tablas que las componen. que permita agrupar tablas en forma visual, en el mismo diagrama. dentro del nodo, ponga los nombres de las tablas, como hoy pone los nombre de los atributos. Asignarle un color diferente a las tablas de un modulo, que a los de otro. Por ejemplo en una KB de un ERP, se podrían agrupar las tablas de Facturación por un lado, por otro las de Stock/Inventario, por otro lado las de Sueldos, etc. haciendo más fácil entender el modelo. Si alguien quiere ir un poco mas lejos en el estudio de grafo...

GeneXus Challenge: KBDoctor fue el proyecto más votado!!.

Imagen
Hoy se conocieron los resultados del Genexus Challenge. Estoy muy contento pues el proyecto KBDoctor fue el elegido en la categoría extensiones por el público. En la categoría Extensiones Genexus Mejor proyecto: KBDesigner (Nicolas Castagnet) Voto popular: KBDoctor (Marcos Crispino, Diego Crutas, Enrique Almeida) En la categoría Bases de Conocimiento. Mejor proyecto y Mas valor a la comunidad (son 2 premios!!): Intérprete para Fórmulas y Funciones de usuario (Miguel Figueroa y Rodrigo Diaz) Voto Popular: GxWebResources ( Gabriel Medina,Pablo Kaniefsky,Lester Fajardo) Creo que fue una buena idea haber organizado este competencia, porque los proyectos presentados están buenos. Para el año que viene hay que hacerlo con mas tiempo y con el reglamento mejor explicado. Felicitaciones a todos los que participaron.

Demo de KBDoctor

Imagen
Me encontré con Jing Project . Es un producto que permite grabar lo que uno hace en la computadora y agregarle sonido y compartirlo en Internet de una forma muy fácil. Me gustó para poder reportar problemas a soporte o para poder mostrarle a mi padre como crear su blog. Para prueba hice una pequeña demo del KBDoctor . Si les gusta la demo, vote el proyecto de KBDoctor en esta página . La votación vence el 2 de Setiembre del 2007 y hay un Nintendo Wii en juego... Todos los niños de Concepto estarán agradecidos :) Jing: Me pareció espectacular.

Expresiones regulares.

Desde hace un tiempo usamos mucho expresiones regulares para buscar en archivos, fundamentalmente fuentes generados, para encontrar errores o patrones de sentencias que queremos detectar. Mi herramienta predilecta para esto es el Search&Replace de Funduc . No había tenido necesidad de usar expresiones regulares en programas. Para el desarrollo de KBDoctor (una extensión para GeneXus) hay un reporte que tiene que listar los objetos que tengan regla parm() sin especificar si los parámetros son de entrada y salida. Para hacer mas o menos rápido dicho reporte, primero identificamos cuales son los objetos que tienen parámetros y al menos alguno de ellos es inout:, lo cual puede significar que no se especifico el uso del parámetro. Luego recorremos las rules, usando expresiones regulares para extraer las lineas comentadas (con // y con /* */) y después sacamos la regla parm() y en ella nos fijamos si faltan IN:/OUT:/INOUT:. Para el manejo de dichas expresiones regulares, busqué algunas...

KBdoctor 0.9.0

Imagen
Marcos, "Über-programmer supremo" del KBDoctor , decidió que hoy era el día de subir el proyecto a GXOpen. Motivos: Al servidor de GXOpen le gusta descansar los fines de semana. Ahora hay servidor nuevo ( recién instalado) por lo que se supone que no debería fallar, pero es preferible prevenir. Por lo tanto en este sencillo, humilde, sentido y emotivo upload, estoy dejando la primera versión pública del mismo. Esta algo crudo y le faltan cosas, pero funciona razonablemente bien. En los próximos días vamos a subir algunas versiones mas, para corregir los errores que encontremos, hasta el domingo. Los que quieran colaborar, hay una lista de tareas en el archivo LoQueFaltaHacer.txt del proyecto. Los que tengan nuevas enfermedades de KB a chequear pueden agregarlas en el wiki , y en la medida que tengamos tiempo la iremos incorporando.

GXChallenge 2007 - A votar!!

Imagen
En el GXChallenge 2007 , participan varios grupos, y algunos proyectos tienen muy buena pinta. Ahora estamos compitiendo por un premio de verdad (una Wii!) y el voto popular es fundamental . Los proyectos por los que hay que votar , son .NET Data Provider for GeneXus Rocha y KBDoctor . A todo aquel que pueda justificar su voto, lo invitamos a una LAN Party en Concepto, para festejar el triunfo!!. La página de resultados permite ver como vamos. Si quieren mas información sobre lo que hace KBDoctor, pueden consultar la página de resumen de consultas y una página de como se instala y usa. PD: Cuando se pongan a votar los brasileros y chinos que son mucho más que nosotros, vamos muertos.... :(

GXChallenge 2007

Como lo dijo Marcos en Petroglifo, en Concepto decidimos anotarnos en el GXChallenge 2007. Tenemos varias extensiones en carpeta para implementar, pero poco tiempo y por lo tanto tuvimos que elegir algunas. Entre ellas elegimos implementar el KBDoctor y un .NET Data Provider (en el post, se explica que es lo que hace cada una de ellas). Andrés Aguiar (*) puso un comentario que había sido parte de nuestra discusión interna si valía la pena desarrollar un GX .NET Provider o no. Yo era de la idea de desarrollar un provider pero con una interfaz tipo for each Genexus, de forma de hacer mas fácil a toda la comunidad acceder a la KB y posibilitar que se pudieran hacer extensiones a GeneXus con Genexus. Esto quedará para una segunda etapa. Desarrollando extensiones. Quiero compartir mi experiencia en el desarrollo de extensiones, no porque sea buena, sino porque es mía :). En primer lugar, ayuda mucho a tener a Marcos, Alexander y Diego cerca pues me ayudan cuando me tranco en algo. La or...

Mas ideas para GeneXus Extensions.

Hace un tiempo, había escrito sobre algunas ideas para las GeneXus Extensions . Creo que muchas de ellas, siguen siendo bien válidas, y por suerte algunas ya se han implementado. El problema es que cada vez se me ocurren mas y cada vez tengo menos tiempo para implementarlas. 25) Foreach Analyzer . Una ventana donde poder copiar un for each del codigo y que muestre los resultados de la base de datos y la sentencia sql que esta generando. 26) SummBy de Objetos. Porder navegar por los objetos de una KB con un pattern similar al del Summby, agrupando por diferentes propiedades de los objetos. Esto incluye la TagCloud de Objetos (que encontre que alguien ya esta implementando, lo cual es fantabulistico). 27) Búsqueda en los fuentes . Poder agregar al indice de busqueda de la KB, los fuentes generados. Es muy común tener que buscar "Cual es el programa que genera x sentencia". Si lo podemos hacer dentro de GeneXus, creo que se va a facilitar mucho la solución de los mismos. Tend...

Marcos lo hizo de nuevo!

Marcos Crispino , publicó 3 extensiones más para GeneXus Rocha. Open Windows Explorer Adds menu commands to open a windows explorer at the Knowledge Base, Model or Web directory View Related Files Adds a tool window that shows all files related to the selected objects Remove Files On Delete When deleting an object from the Knoledge Base, prompts to delete all related files Aqui , explica mas de las mismas. Es bueno ver extensiones (como estas) que realizan tareas que ayudan y ahorran tiempo, agregando mucho valor.