- Este debate está vacío.
-
AutorEntradas
-
6 junio, 2014 a las 6:59 pm #32723Saulo GilMiembro
Hola,
Hace poco estuve realizando una tanda de cambios a los metadatos la cual me llevó varios días. Me pasó que, luego de generar el plugin, al querer aplicar los cambios exportados tuve varios conflictos (claves inexistentes, claves duplicadas). La base de datos en donde se intentó aplicar los cambios estaba limpia y de hecho era una copia exacta del punto de partida de desarrollo del plugin.
Lo único extraño que hice fué pausar el desarrollo del plugin para realizar cambios fuera del ámbito de este plugin. Desde ya, mientras el desarrollo del plugin estaba en pausa no se generó ningun cambio relacionado con el plugin.
Esto es un problema importante ya que el investigar y resolver conflictos de metadatos demanda una cantidad abismal de tiempo.
¿ Hay alguna consideración especial que tenga que tener para evitar este tipo de problemas ?
Lo único que se me ocurre que puede haber desencadenado esto fue el haber creado algunos registros que venian por default asociados a otros componentes, a los cuales posteriormente se les asigno el componente correcto.
6 junio, 2014 a las 8:24 pm #38475Federico CristinaSuperadministradorBuenas,
Que extraño lo que mencionás. Generalmente no tenemos muchos de esos contratiempos, aunque en una base de datos sobre la que trabajan varios desarrolladores, en alguna que otra ocasión hay algún caso, los cuales se resuelven revisando un poco la tabla AD_Changelog.
En ocasiones pueden presentarse errores en el post-install debido a modificaciones que realizan los usuarios sobre la instancia en producción (permisos, cambios en el arbol de menú, etc.). Sin embargo, en tu caso sería un tanto extraño dado que estás utilizando una copia de la base de datos inicial.
Detener la bitácora temporalmente no es un problema, siempre y cuando no sigas realizando modificaciones de desarrollo sobre la base de datos. Qué tipo de error se te presentó? Son errores de install o de post-install? Tenés el log?
No me queda del todo claro tu última frase. ¿Instalaste un componente en tu bbdd de desarrollo? Ésto no debería haber traido inconvenientes. ¿Creaste registros a mano con los datos de otro componente? Si copiaste el AD_ComponentObjectUID esto no debería ser un problema.
Saludos,
Federico12 junio, 2014 a las 4:21 am #38476Saulo GilMiembroEl problema o al menos el problema inicial es que al duplicar/copiar un Tab/Pestaña existente durante el desarrollo de un plugin, el nuevo Tab conserva el mismo AD_ComponentObjectUID que el registro original. Se imaginarán las consecuencias de esto … durante el desarrollo no se nota nada raro pero luego al intentar instalar el plugin la pantalla se convierte en una versión en rojo de Matrix.
Este problema es 100% reproducible y sospecho que pueda estar pasando con otras entidades (e.g.: AD_Field, AD_Column, etc). Adjunto un plugin de prueba para reproducir el problema.
Saludos,
Saulo
12 junio, 2014 a las 1:18 pm #38487Federico CristinaSuperadministradorBuenas,
Gracias por el dato, lo estaremos viendo a la brevedad. A qué proceso te estás refieriendo específicamente? Al que se dispara mediante el botón Copiar Pestañas de Ventana ubicado en la ventana Ventanas, o algún otro proceso?
Es de esperar que este problema no se presente en otras partes, dado que en su momento habíamos barrido con todos los procesos de copiado/creación de metadatos justamente para evitar este tipo de problemas. En muchas partes incluso había sentencias SQL de inserción que tuvimos que migrar a persistencia mediante PO a fin de que se genere el changelog correctamente.
Aparentemente nos quedó esta funcionalidad sin migrar/corregir. Supongo que será el único, dado que por el momento no hemos tenido este tipo de inconvenientes, con lo cual imagino que no debe ser una funcionalidad que hemos utilizado durante el desarrollo.
Slds!
12 junio, 2014 a las 3:34 pm #38488Saulo GilMiembroHola,
En el caso mencionado anteriormente el 2do tab se creó a partir del primero como una copia regular de registros (desde el menú, Edición -> Copiar Registro). Esta operación de copiado fue repetida en varias ocasiones con el objetivo de preservar las opciones ya escogidas para otros registros y así intentar ganar algo de tiempo.
Acabo de hacer una revisión rápida del log de errores y pude ver que esta situación se repitió para las entidades AD_Process y AD_Column.
Saludos
12 junio, 2014 a las 6:13 pm #38490Federico CristinaSuperadministradorBuenas,
Estuve revisando este problema. Efectivamente el inconveniente se da siempre que se utilice la opción de Copiar Registro; estemos en la tabla que estemos.
Acabo de corregir el error, haciendo que se omita la copia de los datos relacionados con Components (AD_ComponentVersion_ID y AD_ComponentObjectUID), revisión r968.
Dado que no se nos presentó este problema anteriormente, parece ser es una funcionalidad nunca aprovechada hasta el momento.
En cuanto el proceso al que hacía mención anteriormente, ese sí funciona correctamente.
Saludos!
Federico13 junio, 2014 a las 2:00 am #38491Saulo GilMiembroMuchas gracias!
-
AutorEntradas
- Debes estar registrado para responder a este debate.