Impresión de Certificados y Constancias G3.19

Hola! Estoy intentando imprimir las constancias y certificados pero me sale pantalla en blanco.

Está ejecutada la sentencia java -jar <path_gestion>/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081
Imprime perfectamente los reportes.

Por consola me genera el error

[Wed Apr 27 15:12:46.024249 2022] [php7:notice] [pid 23531] [client 192.168..**:44350] java_InternalException: \n[TRAZA]\n\t\n\tjava_ThrowExceptionProxyFactory->getProxy \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 215 \n\t\n\tjava_Arg->getResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 388 \n\t\n\tjava_Client->getWrappedResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 394 \n\t\n\tjava_Client->getResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 594 \n\t\n\tjava_Client->invokeMethod \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1731 \n\t\n\tjava_JavaProxy->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1839 \n\t\n\tjava_AbstractJava->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 2007 \n\t\n\tJava->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/fr…SIGUE…, referer: http://192.168..**/guarani/3.19/aplicacion.php?ah=st62695d5c813820.95171725&ai=guarani%7C%7C37000080

Me podrían orientar por donde puede estar el error
Muchas gracias!!

Hola Sergio,

¿el reporte que intentas imprimir esta personalizado?

¿que pasa si lo paras y lo volves a correr de la siguiente manera?

java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar <path_gestion>/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/jasper.log &>/dev/null &

Luego cuando ocurre el caso podemos ver en el archivo /tmp/jasper.log (lo podes guardar en otra ubicación si queres) para tener mas información del error. El 5 después de SERVLET_LOCAL:8081 es para que muestre mas información de debug.

Pasame también los logs de Guaraní así vemos que parámetros se le esta pasando al reporte.

saludos.
2

Hola! Adjunto los logs solicitados.

Saludos!!


logs.zip (20.8 KB)

Hola Sergio, gracias por los logs!!!

Parece que hay un problema en una query dentro de algún Jasper:

Caused by: org.postgresql.util.PSQLException: ERROR: relation "sga_certificados_otorg" does not exist

¿tenes la tabla sga_certificados_otorg en la DB de Guaraní?
Deberías tenerla, hay varios reportes Jasper que consultan sobre dicha tabla.

Hay otro foro similar: https://foro.comunidad.siu.edu.ar/index.php?topic=15743.msg68647

saludos.
2

Hola! si tenemos la tabla sga_certificados_otorg y tiene 475 registros.

Hola Sergio,

Parece ser un problema de conexión del Jasper a la DB, fíjate que dice:


net.sf.jasperreports.engine.JRException: Error executing SQL statement for : guarani

En la función configurar_bd de vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php agrega lo siguiente:


$params = $conexion->get_parametros();
toba::logger()->debug("Params conexion DB:". print_r($params, true));

Luego al imprimir con Jasper deberia mostrar lo siguiente en los logs, ¿que muestra en su caso?:


Params conexion DB:Array

(
    [profile] => localhost
    [usuario] => postgres
    [clave] => postgres
    [base] => db_guarani
    [puerto] => 5432
    [schema] => negocio
)

¿son reportes personalizados?

saludos.
2

Hola! No son personalizados, y el log sigue mostrando

[INFO][toba] componente(37000552): [ callback ] ‘conf__editor’ no fue atrapado
[CRITICAL][toba] java_InternalException:
[TRAZA]

java_ThrowExceptionProxyFactory->getProxy 

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

java_Arg->getResult 

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

java_Client->getWrappedResult 

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

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

java_JavaProxy->__call 

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

java_AbstractJava->__call 

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

Java->__call 

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

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

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

Hola Sergio,

En www/aplicacion.php pone define(“apex_pa_log_archivo_nivel”, 7); para que te registre lo que te pase en el mensaje anterior.

Parece ser un problema que Jasper no se puede conectar a la DB.

saludos.
2

Devuelve los datos de conexión correctos

[DEBUG][guarani] Params conexion DB:Array
(
[profile] => 192.168.*.**
[usuario] => *******
[clave] => *********
[base] => ******
[puerto] => *****
[schema] => ‘negocio’, ‘public’
)

[DEBUG][guarani] Seteo el esquema por defecto para el reporte: SET search_path = " ‘negocio’, ‘public’ ", “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/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/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/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/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_edi_administrar_solicitudes_constancias

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

Claro Sergio, veo lo siguiente:


[DEBUG][guarani] Params conexion DB:Array
(
    [profile] => 192.168.*.**
    [usuario] => *******
    [clave] => *********
    [base] => ******
    [puerto] => *****
    [schema] =>  'negocio', 'public'
)

[DEBUG][guarani] Seteo el esquema por defecto para el reporte: SET search_path = " 'negocio', 'public' ", "public";

El problema es este (queda el schema “public” solo):

SET search_path = " 'negocio', 'public' ", "public";

Debería ser:

SET search_path = "negocio", "public";

Revisa el archivo instalacion/bases.ini, ¿que schema tenes para Guaraní, debería ser schema = “negocio”?

saludos.
2

Eso funcionó!! pero ahora me genera correctamente los pdfs, salvo el analítico que sale el pdf en blanco.

El log no muestra error

[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
[INFO][guarani] PUNTO MONTAJE: se carg� la clase nucleo/constancias/administrar_solicitudes/cn_man_administracion_solicitud_constancias.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/guarani/php
[INFO][guarani] El manejador de entidades: Inicializacion. Entidades cargadas: [0]
[INFO][guarani] PUNTO MONTAJE: se carg� la clase operaciones/constancias/administrar_solicitudes/ci_nav_administrar_solicitudes_constancias.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/guarani/php
[INFO][guarani] PUNTO MONTAJE: se carg� la clase operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.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/componentes/guarani_pers_ei_filtro.php del punto de montaje personalizacion. El path del mismo es /usr/local/proyectos/guarani/personalizacion/php
[INFO][toba] componente(37000552): [ callback ] ‘conf__editor’ no fue atrapado

Saludos!

Hola Sergio, me alegro que les haya funcionada!!!

salvo el analítico que sale el pdf en blanco.

Volve a mandarme la salida de Jasper cuando falla (ver Respuesta #1).

saludos.
2

Adjunto archivo

Saludos!!


jasper.zip (18.4 KB)

Hola Sergio,

Viendo los logs de Jasper no veo ningún error.

¿en que versión de Guaraní están?

El reporte exportaciones/jasper/CertificadoAnalitico.jasper tiene varias queries dentro, las podes ver mejor en exportaciones/jasper/CertificadoAnalitico.jxrml, podes probarlas, revisa que valores están llegando para los parámetros $P{plan_version}, $P{alumno}, $P{alumno}, $P{certificado} y $P{nro_solicitud}.


SELECT
						CASE (SELECT COUNT(*) FROM vw_optativas_plan op WHERE op.plan_version = $P{plan_version} AND op.elemento = p.elemento)
						  WHEN 0 THEN -- No es una actividad optativa
						     COALESCE(p.actividad_codigo || ' - ', '') || COALESCE(ep.nombre, p.actividad_nombre)
						  ELSE -- Es una optativa que se encuentra en una o más de una Genérica
						     COALESCE(get_generica_optativa_alumno(p.elemento, $P{plan_version}, $P{alumno}, 1),'') || ' - ' || COALESCE(p.actividad_codigo || ' - ', '') || COALESCE(ep.nombre, p.actividad_nombre)
						END as actividad_descr,
						p.fecha,
						p.nota || ' (' || p.nota_descripcion || ' - ' || p.resultado_descripcion || ')' as nota_completa,
						p.resultado_descripcion,
						p.origen as origen,
						CASE
						  WHEN p.tipo = 'Aprob. por Resolución' THEN 'Resol.'
						  WHEN p.tipo = 'Equivalencia' THEN 'Equiv.'
						  ELSE p.tipo
						END as tipo,
						p.actividad_documento,
						p.folio_fisico as folio_fisico,
						p.datos_origen_equivalencia,
						ep.creditos
					FROM f_certificado_actividades($P{alumno},'T','T','A', true, true, false) as p
					JOIN sga_elementos_revision as er ON er.elemento = p.elemento
					LEFT JOIN sga_elementos_plan as ep ON (ep.elemento_revision = er.elemento_revision AND ep.plan_version = $P{plan_version})
					WHERE p.elemento IN (SELECT * FROM get_actividades_certificado_alumno($P{alumno}, $P{certificado}, $P{plan_version}, true, false))
					ORDER BY to_date(p.fecha,'DD/MM/YYYY');


SELECT sga_suplemento_tipos.descripcion
					FROM sga_certificados_otorg_anexo
					JOIN sga_suplemento_tipos ON sga_certificados_otorg_anexo.tipo_suplemento = sga_suplemento_tipos.tipo_suplemento
					WHERE sga_certificados_otorg_anexo.nro_solicitud = $P{nro_solicitud}
					GROUP BY sga_suplemento_tipos.descripcion, sga_suplemento_tipos.orden
					ORDER BY sga_suplemento_tipos.orden;


SELECT
					sga_alumnos.alumno,
					(SELECT descripcion FROM negocio.mdp_nacionalidades WHERe nacionalidad = vw_personas.nacionalidad) as nacionalidad,
					(SELECT imagen FROM mdp_personas_foto WHERe mdp_personas.persona = mdp_personas_foto.persona) as imagen,
					to_char(fecha_nacimiento, 'DD/MM/YYYY') AS fecha_nacimiento,
					(SELECT vw_localidades.localidad_nombre FROM vw_localidades WHERE vw_localidades.localidad = mdp_personas.localidad_nacimiento) as lugar_nacimiento,
					COALESCE(sga_alumnos.legajo, ' -- ') AS legajo,
					COALESCE(ROUND(sga_certificados_otorg.promedio,2)::varchar,' ') AS promedio_con_aplazos,
					COALESCE(ROUND(sga_certificados_otorg.promedio_sin_aplazos,2)::varchar,' ') AS promedio_sin_aplazos,
					vw_personas.apellido || ', ' || vw_personas.nombres AS apellido_y_nombre,
					vw_personas.desc_tipo_documento || ' ' || vw_personas.nro_documento AS documento_principal,
					sga_certificados_otorg.certificado,
					sga_certificados_otorg.plan_version,
					CASE vw_personas.sexo
						WHEN 'F' THEN COALESCE(sga_certificados.nombre_femenino, sga_certificados.nombre)
						WHEN 'X' THEN COALESCE(sga_certificados.nombre_no_binario, sga_certificados.nombre)
						ELSE sga_certificados.nombre 
					END AS certificado_nombre,
					COALESCE(sga_certificados_otorg.nro_expediente, ' - ') AS nro_expediente,
					COALESCE(to_char(sga_certificados_otorg.fecha_egreso, 'DD/MM/YYYY'), ' ') AS fecha_egreso_alumno,
					f_fecha_a_texto(sga_certificados_otorg.fecha_egreso, 2) AS fecha_egreso_alumno_narrada,
					to_char(CURRENT_DATE, 'DD/MM/YYYY') AS fecha_actual,
					f_fecha_a_texto(CURRENT_DATE, 1) AS fecha_actual_narrada,
					sga_instituciones.nombre AS nombre_institucion,
					f_responsables_academicas_propuesta(sga_propuestas.propuesta) AS ra_nombre,
					sga_responsables_academicas.localidad AS ra_localidad,
					COALESCE(mug_localidades.nombre, ' -- ') AS localidad_nombre,
					sga_propuestas.nombre AS propuesta_nombre,
					'(' || sga_propuestas.codigo || ') ' || sga_propuestas.nombre AS propuesta_nombre_completo,
					sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
					sga_propuestas.propuesta_tipo,
					sga_planes.codigo AS plan_codigo,
					sga_planes.nombre AS plan_nombre,
					'(' || sga_planes.codigo || ') ' || COALESCE(sga_planes.nombre, ' ') AS plan_nombre_completo,
					COALESCE(sga_certificados_otorg.duracion_real_en_meses::VARCHAR, ' ') AS duracion_en_meses,
					COALESCE(resol_plan.documento_numero, ' ') AS resolucion_plan_nro,
					COALESCE(to_char(resol_plan.fecha, 'DD/MM/YYYY'), ' ') AS resolucion_plan_fecha,
					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,
					COALESCE(get_titulo_institucion_habilitante(sga_alumnos.alumno, 1), ' -- ') AS titulo_anterior,
					COALESCE(get_titulo_institucion_habilitante(sga_alumnos.alumno, 2), ' -- ') AS institucion_anterior,
					CASE get_titulo_institucion_habilitante(sga_alumnos.alumno, 3)
						WHEN 'E' THEN TRUE
						WHEN 'N' THEN FALSE
					END AS institucion_extranjera
			FROM	sga_certificados_otorg
			JOIN	sga_planes_certificados ON (sga_planes_certificados.certificado  = sga_certificados_otorg.certificado AND
                                                sga_planes_certificados.plan_version = sga_certificados_otorg.plan_version)
			JOIN	sga_certificados ON sga_certificados.certificado = sga_certificados_otorg.certificado
			JOIN	sga_alumnos ON sga_alumnos.alumno = sga_certificados_otorg.alumno
			JOIN	vw_personas ON vw_personas.persona = sga_alumnos.persona
			JOIN	mdp_personas ON mdp_personas.persona = vw_personas.persona
			JOIN	sga_planes_versiones ON sga_planes_versiones.plan_version = sga_certificados_otorg.plan_version
			JOIN	sga_planes ON sga_planes.plan = sga_planes_versiones.plan 
			JOIN	sga_propuestas ON sga_propuestas.propuesta = sga_planes.propuesta
			JOIN	sga_responsables_academicas ON true 
			JOIN 	sga_instituciones ON sga_instituciones.institucion = sga_responsables_academicas.institucion
			LEFT JOIN sga_documentos as resol_plan ON resol_plan.documento = sga_planes.documento_alta
			LEFT JOIN mug_localidades ON sga_responsables_academicas.localidad = mug_localidades.localidad
			
			WHERE	sga_certificados_otorg.nro_solicitud = $P{nro_solicitud}
			  AND	sga_responsables_academicas.responsable_academica = get_ra_inst_araucano_propuesta(sga_propuestas.propuesta, 'RA');

saludos.
2

¿en que versión de Guaraní están?

En la 3.19.1

Comprobe esas consultas en un editor sql y devuelven bien los resultados.

revisa que valores están llegando para los parámetros $P{plan_version}, $P{alumno}, $P{alumno}, $P{certificado} y $P{nro_solicitud}.

Como hago para comprobarlo? desde que archivo?

Saludos!!

Hola Sergio,

¿como estas imprimiendo el Certificado Analítico?
Por lo que veo solo se usa en las operaciones Administrar Circuitos de Tesis y Administrar Circuitos de Egreso en los Formularios a Imprimir de las Transiciones.

Pasame los logs de la aplicación también instalacion/i__desarrollo/p__guarani/logs/sistema.log al momento de la impresión.

saludos.
2

Por lo que veo solo se usa en las operaciones Administrar Circuitos de Tesis y Administrar Circuitos de Egreso en los Formularios a Imprimir de las Transiciones.

Desde el circuito de egresados pudimos imprimir uno, pero estamos tratando de ejecutar desde Constancias y Certificados » Solicitar Constancias y Certificados y nos sale en blanco.

Pasame los logs de la aplicación también instalacion/i__desarrollo/p__guarani/logs/sistema.log al momento de la impresión.

Lo adjunto, junto con las configuraciones del certificado.

Saludos!!


conf.zip (62.9 KB)

Desde el circuito de egresados pudimos imprimir uno, pero estamos tratando de ejecutar desde Constancias y Certificados » Solicitar Constancias y Certificados y nos sale en blanco.

Claro, desde Solicitar Constancias y Certificados no se puede imprimir, te adjunto capturas. Por lo que veo a nivel código no esta preparado para imprimir el Certificado Analítico ya que no almacena los parámetros en la tabla sga_constancias_solicitud_param.

Revisa la respuesta de este foro: https://foro.comunidad.siu.edu.ar/index.php?topic=20824

saludos.
2


Screenshot from 2022-05-17 12-17-22.png

Screenshot from 2022-05-17 12-17-22.png

Screenshot from 2022-05-17 12-17-33.png

Screenshot from 2022-05-17 12-17-33.png

Screenshot from 2022-05-17 12-17-45.jpg

Screenshot from 2022-05-17 12-17-45.png