Ir al contenido principal

Export Data Model en GeneXus

Una feature incluída en la linea Beta de GeneXus que puede parece menor y por ende pasar inadvertida, es la opción (propiedad) "Only Structure for Transactions" que se incluye en las Export Options:


Al exportar transacciones, si esta opción está en "true", entonces en el XPZ solo se incluye la estructuras de las mismas (no va el form, variables, etc).

Si a eso agrego que puedo configurar "References Type" en "Minimal", entonces seleccionando todas las transacciones de una KB puedo obtener un XPZ que tenga el modelo de datos de la misma.

Es decir: Transacciones, atributos, dominios, subtipos, tablas, etc.

En un esquema:



Donde DBClon tiene las mismas estructuras que DBOriginal.

Incluso podría configurar KB DataModel con "Reorganize Server Server Tables" en "no" y acceder directamente a la DBOriginal:
Prueba de concepto

Como prueba de concepto utilicé la KB GeneXusMeeting, exporté el modelo de datos y lo consolidé en una KB nueva que cree y el modelo de datos quedó exactamente igual:


Tip: el modelo de datos lo comparé generando un Create DB en ambas KBs y comparando los ReorganizationScript.txt de ambas

¿Qué utilidad tiene ésto?

Extraer el modelo de datos de una KB seguro puede tener muchos usos, en particular a mi me sirvió para tener varias aplicaciones que se desarrollan en diferentes KBs pero que se integran a nivel de base de datos (integrarlas en una KB sola no era una opción). Una KB es la "dueña" de las estructuras y exporta las mismas al resto de las KBs que es donde se desarrolla.

A su vez combinada con otras opciones en el export, la utilización de módulos, etc se pueden utilizar arquitecturas interesantes.
Bastante de esto comentaba Armin en su charla en el GX29 sobre Arquitectura de Sistemas grandes y complejos con GeneXus




Nota: en la beta actual (dic/2019) las fórmulas se exportan como nullvalue de las mismas, salvo las UDPs que no son exportadas. Es decir, una fórmula AttFormula=Expression se transforma en AttFormula=Nullvalue(AttFormula) esto es un comportamiento a mejorar.

UPDATE 13/Feb - esta funcionalidad fue incluída en V16U8 actualmente en Preview, a liberar semana del 17/Feb.

Comentarios

  1. La verdad que esta es terrible feature y de tenerla antes me hubiera ayudado con grandes cosas. Es necesaria para cuando tenemos que plantearnos re-ingeniería o cambios en la arquitectura de nuestros sistemas. Espero que este pronto en la versión para poder tenerla disponible.

    ResponderBorrar
    Respuestas
    1. Como bien decís: tiene varios escenarios de uso y puede resultar muy útil en esos.

      La opción ya está disponible en la versión Stable (preview) https://www.genexus.com/es/developers/downloadcenter?data=4978;; así que se puede probar sin problemas.
      Será liberada en el U8 (Feb/2020).

      Borrar
  2. ¿como se puede hacer esto en genexus ev3, debido a que esto esta disponible en versiones superiores?

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Liberar una versión: el fin del principio

Quienes desarrollamos software buscamos afectar positivamente la vida de las personas a través de nuestras aplicaciones. Ese es nuestro objetivo final, ese es nuestro éxito. Quienes desarrollamos , que ayuda a nuestros colegas en esa misión, solo tenemos éxito cuando ellos tienen éxito, por eso solemos decir que cuando liberamos una versión es "el fin del principio". Es un escalón fundamental, pero solo el primero. Tuve el privilegio de formar parte del equipo de y de su pero a su vez no he podido dedicarle tanto tiempo   como quisiera, casi no he podido  , ni  he podido leer. El mundo siguió girando, hay  , hay que me perdí y . Casi de casualidad me enteré del encuentro del a partir del 16/marzo en Montevideo. En cualquier caso: ¡el esfuerzo valió la pena!. Ahora que está siendo liberada en el   , hay que celebrar porque aplica aquello de "release is a feature". Podría tirarme en mi casa y estrenar mi  con una buena peli o sino aprovechar ir al un poco má...

El miedo, ese asesino silencioso

Hace unas semanas compré por Mercado Libre un tejido de alambre (de esos electrosoldados que se usan para cercos, pérgolas, etc) para armar una pérgola en casa. Como me suele pasar: compré de más. Así que decidí vender el resto del alambre por el mismo medio (Mercado Libre). Lo publiqué un Miércoles a las 13:00 y 4 horas después recibo un aviso de Mercado Libre que lo había vendido. Perfecto! Incluso lo había puesto al mismo precio x metro que la compra original así que notable! Revisé la compra y me pagó mediante Mercado Pago usando una tarjeta VISA, en fin, todo normal. Un rato después del aviso me llaman de un teléfono fijo al celular un tal Juan Rodriguez que coincidía con el nombre del comprador que me había llegado. Capitulo 1: ¡para qué abrís la boca! No sé cómo decir esto de un modo "políticamente correcto" pero la manera de expresarse parecía de alguien que no tenía un gran nivel de educación. Demasiado "lunfardo" para hablar con alguien que no con...

Sobre plomeros y sanitarios

Hace unos días estaba en casa de mi madre, quien sigue viviendo en la ciudad donde yo nací (Florida-Uruguay), cuando sonó el timbre. Fui a atender y me encontré con Martín, un ex compañero de liceo que hacía años no veía. Luego de preguntarle cómo andaba y el saludo de rigor, le pregunté que estaba haciendo por allí y me dijo "estoy trabajando aquí", ahí noté que venía con baldes y herramientas y recordé que es hijo del plomero que toda la vida trabajó en mi casa. El baño de mi madre estaba con problemas en la presión de agua así que llamó al plomero "tradicional" y este le comentó que estaba retirado pero que enviaría a su hijo. Allí pues estaba Martín. Es interesante encontrarse con compañeros de escuela/liceo que uno no ve hace muchos años, da para otro post seguramente. La cuestión es que seguimos conversando mientras él trabajaba. Le pregunté por el padre y me dijo que estaba bien pero ya medio cansado del trabajo y que nunca se había podido adaptar a los cambi...