Run sobre un objeto, compila muchos objetos no relacionados en mi KB GeneXus
Me plateaban este problema:
"Sobre un objeto main, hago click derecho y RUN. Demora muchisimo, porque compila casi todos los objetos del sistema".
Es una KB mediana (1000 objetos) y no había motivos para ese comportamiento.
En la documentacion del Build/Rebuild/Run dice:
"Sobre un objeto main, hago click derecho y RUN. Demora muchisimo, porque compila casi todos los objetos del sistema".
Es una KB mediana (1000 objetos) y no había motivos para ese comportamiento.
En la documentacion del Build/Rebuild/Run dice:
Specify only objects that have changed (Build) or force the specification of all objects (Rebuild) belonging to the "Selected" main call tree (*).
Consider also objects references in the properties of KB Version (except Startup Object), Environment and Generator, with their call tree.
(*)The call tree of a main is "cut" on every other main found unless the Call tree for build option is set to full
Entonces lo que hicimos fue revisar cuales son los objetos referenciados en las propiedades, de la Version, Environment y Generador.
Habia
Objetos del GAM, Login y NoAutorizado
Objeto de AfterConnect
MasterPage
Lo único sospechoso, era la masterpage, pues tenia un menu, que llamaba a muchos objetos.
Esto lo hacia a través de un Data Provider.
Pasamos el Data Provider a main y pusimos la propiedad Call tree for build option en Stop on main objects, con lo que se corto el árbol de llamadas.
Con esos sencillos pasos, logramos que al hacer Run de un objeto, solo tomara en cuenta los objetos que estan siendo referenciados por el objeto en cuestion, y no tuviera que volver a compilar otros objetos main que no estaban siendo referenciados.
Una solucion muy sencilla, que tal vez a alguien mas le sirva.
Una solucion muy sencilla, que tal vez a alguien mas le sirva.
El Dataprovider se puede setear como Main? En 15?
ResponderBorrarRoberto:
ResponderBorrarEn GeneXus 15 y posteriores se puede marcar los Data Providers como main.
En Evolution 3 o anteriores, podiras hacer una llamada dinamica desde la MasterPage al dataprovider, de forma que no quede dentro del arbol de llamadas.
Excelente, muchas gracias.
ResponderBorrar