Personalización Analítico

Buen día Comunidad. Tengo un inconveniente con una personalización de Analítico. Funcionaba bien en la versión 3.15 de Guaraní, pero al migrarlo a la 3.19 no está funcionando. Ya le actualicé las consultas SQL debido a los cambios en la base, pero al intentar imprimir, la pantalla se queda en blanco. El log del sistema es el siguiente:

[INFO][toba] Se detecto cambio de operación. Se limpia la memoria de la operacion
[DEBUG][guarani] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[DEBUG][guarani] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje personalizacion
[INFO][guarani] PUNTO MONTAJE: se cargó la clase extension_toba/guarani_sesion.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/guarani/php
[INFO][guarani] PUNTO MONTAJE: se cargó la clase extension_toba/autentificacion/guarani_pers_usuario.php del punto de montaje personalizacion. El path del mismo es /usr/local/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se cargó la clase extension_toba/guarani_fuente_datos.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/guarani/php
[DEBUG][toba] [SECCION] Iniciando componentes…
[INFO][guarani] PUNTO MONTAJE: se cargó la clase operaciones/_lib/ci_imprimir_formulario.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/guarani/php
[DEBUG][toba] componente(34000241): [callback][ ini__operacion ]
[DEBUG][toba] [SECCION] Procesando eventos…
[INFO][toba] componente(34000241): No hay señales de un servicio anterior, no se atrapan eventos
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio…
[DEBUG][toba] componente(34000241): Pantalla de servicio: ‘’
[INFO][toba] componente(34000241): [ callback ] ‘conf__pant_inicial’ no fue atrapado
[DEBUG][toba] [SECCION] Respondiendo al servicio__vista_jasperreports…
[DEBUG][guarani] Seteo el esquema por defecto para el reporte: SET search_path = “negocio”, “public”;
[CRITICAL][toba] java_InternalException:
[TRAZA]

java_ThrowExceptionProxyFactory->getProxy 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 215
Parametros:
11
org.postgresql.jdbc4.Jdbc4Connection

1

java_Arg->getResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 388
Parametros:
1

java_Client->getWrappedResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 394
Parametros:
1

java_Client->getResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 594

java_Client->invokeMethod 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1731
Parametros:
1
fillReport
/usr/local/proyectos/guarani/personalizacion/exportaciones/jasper/CertificadoAnalitico.jasper Instancia de Java Instancia de java_InternalJava

java_JavaProxy->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1839
Parametros:
fillReport
/usr/local/proyectos/guarani/personalizacion/exportaciones/jasper/CertificadoAnalitico.jasper Instancia de Java Instancia de java_InternalJava

java_AbstractJava->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 2007
Parametros:
fillReport
/usr/local/proyectos/guarani/personalizacion/exportaciones/jasper/CertificadoAnalitico.jasper Instancia de Java Instancia de java_InternalJava

Java->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 332
Parametros:
fillReport
/usr/local/proyectos/guarani/personalizacion/exportaciones/jasper/CertificadoAnalitico.jasper Instancia de Java Instancia de java_InternalJava

toba_vista_jasperreports->completar_con_datos 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 278

toba_vista_jasperreports->generar_salida 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 331

toba_solicitud_web->servicio__vista_jasperreports 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 185
Parametros:
Instancia de ci_imprimir_formulario

toba_solicitud_web->procesar_servicios 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 60

toba_solicitud_web->procesar 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96

toba_nucleo->acceso_web 

Archivo: /usr/local/proyectos/guarani/www/aplicacion.php, lInea 33

Agradezco mucho su colaboración!

Buen día, algún aporte sobre éste tema?

Hola Nicolás,

Probaste emitir el analítico sin la personalización? Funciona?
Una alternativa para tener más detalle del problema es ejecutar Jasper así:

java -jar [path proyeto guarani]/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/log_jasper.log &

Saludos, Florencia.

Hola Florencia! Si, el analítico sin personalizar funciona. Corrí el jasper como me indicaste, esto salió en el log:

May 22 10:44:56 VMBridge INFO : VM : 11.0.11@https://ubuntu.com/
May 22 10:44:56 VMBridge INFO : VMBridge version : 5.5.2
May 22 10:44:56 VMBridge INFO : logFile : /tmp/log_jasper.log
May 22 10:44:56 VMBridge INFO : default logLevel : 5
May 22 10:44:56 VMBridge INFO : socket : SERVLET_LOCAL:8081
May 22 10:44:56 VMBridge INFO : java.ext.dirs : null
May 22 10:44:56 VMBridge INFO : php.java.bridge.base: /root
May 22 10:44:56 VMBridge INFO : thread pool size : 20
May 22 10:44:56 VMBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8081
java.lang.RuntimeException: java.net.BindException: Address already in use (Bind failed)
at php.java.bridge.Standalone.init(Standalone.java:217)
at php.java.bridge.Standalone.main(Standalone.java:320)
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.base/java.net.PlainSocketImpl.socketBind(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:395)
at java.base/java.net.ServerSocket.(ServerSocket.java:257)
at php.java.bridge.TCPServerSocket.newServerSocket(TCPServerSocket.java:58)
at php.java.bridge.TCPServerSocket.(TCPServerSocket.java:79)
at php.java.bridge.TCPServerSocket.create(TCPServerSocket.java:51)
at php.java.bridge.Standalone.bind(Standalone.java:75)
at php.java.bridge.JavaBridge.bind(JavaBridge.java:234)
at php.java.bridge.JavaBridgeRunner.bind(JavaBridgeRunner.java:141)
at php.java.bridge.http.HttpServer.(HttpServer.java:91)
at php.java.bridge.JavaBridgeRunner.(JavaBridgeRunner.java:71)
at php.java.bridge.JavaBridgeRunner.getRequiredStandaloneInstance(JavaBridgeRunner.java:127)
at php.java.bridge.JavaBridgeRunner.main(JavaBridgeRunner.java:521)
at php.java.bridge.Standalone.checkServlet(Standalone.java:240)
at php.java.bridge.Standalone.init(Standalone.java:200)
… 1 more

Nicolás,

Estos mensajes del log indican que ya estás corriendo Jasper en el mismo puerto.
Si funciona sin la personalización entonces podrías probar las consultas SQL personalizadas por separado (reemplazando los parámetros) y ver si alguna de ellas da error.

Saludos, Florencia.

Florencia, efectivamente funciona sin la personalización. Y al probar las consultas SQL personalizadas en la base, todos funcionan correctamente

Nicolás,

Quizás haya problema con alguno de los parámetros entonces? Revisaste eso?

Saludos, Florencia.

Encontré el problema. La consulta SQL del reporte ejecutada en la base de postgres directo, traía los datos correctamente. Pero por algun motivo, en el report query del iReport, al presionar el boto “Read Fields” para revisar que me traiga todos los campos, generaba error. Sin embargo el reporte compilaba correctamente sin errores, por eso no detectaba la falla. Depurando todo, encontré que el error estaba en la siguiente sección de la query:

COALESCE(get_titulo_resolucion(sga_certificados_otorg.alumno, sga_certificados_otorg.plan_version, sga_certificados_otorg.certificado, sga_certificados_otorg.fecha_egreso, ‘MINISTERIAL’),’ – ‘) as nro_resolucion_ministerial,
COALESCE(get_titulo_resolucion(sga_certificados_otorg.alumno, sga_certificados_otorg.plan_version, sga_certificados_otorg.certificado, sga_certificados_otorg.fecha_egreso, ‘CONEAU’),’ – ') as nro_resolucion_coneau,

Esos dos campos (nro_resolucion_ministerial, nro_resolucion_coneau) no los pude traer. Lo tuve que cambiar. La función get_titulo_resolucion está correcta en la base. Desconozco el motivo del error. Debí modificar esa parte de la query para poder seguir adelante y que funcione la personalización, tal como lo hacía en las versiones anteriores e guarani.

Muchas gracias Florencia