Re:Re:Problema con instalación de Componente

Inicio Foros Foro principal Desarrolladores Problema con instalación de Componente Re:Re:Problema con instalación de Componente

#34245
Federico CristinaFederico Cristina
Superadministrador

Bien, fue necesario probar a instalar tu .jar para determinar el origen del problema. De todas maneras, estas pruebas nos vienen bien para detectar escenarios que deberán ser corregidos en futuros releases. Veamos…

1) Antes que nada, por razones obvias, muevo este thread a desarrolladores.

2) El problema radica en los comentarios en el preinstall.sql. Esto es por la manera en que se están leyendo las sentencias desde el archivo preinstall.sql contenido en el .jar; al presentarse un comentario en el archivo, toda sentencia posterior queda como parte de dicho comentario. Por lo tanto, actualmente el preinstall.sql no debe contener comentarios.

3) El punto 2 desencadena el error: Siguiendo la consola de eclipse, veo que hay una excepción:

Code:
ERROR: relation “m_juguetes” does not exists

Esto se debe a justamente en dicha transacción no se creo a nivel postgres la tabla juguetes, dado el issue del punto anterior. A partir de este momento TODA sentencia SQL para dicha transacción es ignorada debido a que la transacción fue abortada:

Code:
ERROR: current transaction is aborted, commands ignored until end of transaction block

Esto responde a tu pregunta sobre los errores severos en las secuencias. Los mismos no aparecen luego de quitar los comentarios en el preinstall.sql, ya que la transacción no fue abortada.

Luego de verificar infructuosamente las secuencias, el framework busca el proceso por defecto para realizar la postinstalación, utilizando obviamente la misma transacción que se encuentra abortada, y es por ésto que el SELECT correspondiente devuelve NULL, llevandonos ahora sí al mensaje de error que se presenta en pantalla.

Quitados los comentarios en el preinstall.sql pude realizar la instalación perfectamente.

4) Todo el proceso de instalación de un plugin preinstall.sql, install.xml, postinstall.xml, etc. fue desarrollado utilizando una única transacción que se va propagando donde sea necesario. Por ende postgre te garantiza que de haber un error, el rollback de la misma te llevará al estado previo del inicio de la misma, incluyendo modificaciones en base de datos.

5) Un comentario final: Desde el perfil Administrador del Sistema, deberás agregar el permiso que relaciona la nueva ventana con el perfil correspondiente de manera manual, usando la ventana de Perfil (ad_window_access), dado que por el momento las tablas ad_XXX_access no se encuentran dentro del set de tablas a bitacorear.

Saludos!
Federico