Ayuda :) Problema Jasper en impresion y entrega de constancia. 3.11.1

Buenas.

Les comento que intenté de todo y probé de todo pero no puedo dar con el problema ni mucho menos con la solución.
Necesito ayudaaaa!!! :slight_smile:

Los detalles:
Podemos emitir la Constancia de alumno regular pero no podemos emitir la Constancia de Actividades Aprobadas.
El error se da unicamente en el ambiente de producción. En desarrollo podemos imprimir bien (ambos ambientes son identicos).

Lo que vemos en el log de guaraní es lo siguiente:

Fecha: 01-03-2016 12:17:08
Operacion: Administrar Solicitudes
Version-PHP: 5.4.45
URI: /gestion/aplicacion.php?ah=st56d5b26651e0b&ai=guarani||37000080&tcm=guaraniApp&ai=guarani||37000080&ts=vista_jasperreports&tsd=guarani||37000555
==========
[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 C:\Guarani\gestion/personalizacion/php
[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_fuente_datos.php del punto de montaje proyecto. El path del mismo es C:\Guarani\gestion/php
[DEBUG][guarani] Inicializando perfil de datos para el proyecto guarani
[DEBUG][guarani] SQL con perfil de datos: SELECT		trim(version_app) as version_actual 
				FROM		app_versiones_base
				ORDER BY	id_conversion DESC
				LIMIT		1
		
[DEBUG][toba] [SECCION] Iniciando componentes...
[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 C:\Guarani\gestion/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 C:\Guarani\gestion/php
[DEBUG][toba] componente(37000552): Pantalla de eventos: 'administrar_solicitud'
[DEBUG][toba] [SECCION] Procesando eventos...
[DEBUG][toba] componente(37000552): [ inicializar_dependencias ]
array (
  0 => 'editor',
)
[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 C:\Guarani\gestion/php
[DEBUG][guarani] SQL con perfil de datos: SELECT 
					sga_constancias_solicitud.solicitud,
					sga_constancias_solicitud.constancia,
					sga_constancias.nombre AS constancia_nombre,
					vw_personas.apellido_nombres AS apellido_y_nombre,
					vw_personas.nro_documento,
					vw_personas.tipo_nro_documento AS documento_principal,
					sga_alumnos.propuesta,
					'(' || sga_propuestas.codigo || ') ' || sga_propuestas.nombre AS propuesta_nombre,
					sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
					sga_planes_versiones.plan,
					sga_planes.nombre AS plan_nombre,
					sga_alumnos.plan_version,
					sga_planes_versiones.nombre AS plan_version_nombre,
					sga_alumnos.ubicacion,
					sga_ubicaciones.nombre AS ubicacion_nombre,
					sga_constancias_solicitud.fecha_solicitud,
					sga_constancias_solicitud.cant_copias_solicitadas,
					CASE 
						WHEN sga_constancias_solicitud.estado = 'Impreso'
							THEN sga_constancias_solicitud.fecha_proceso
					END AS fecha_impresion,
					CASE
						WHEN sga_constancias_solicitud.estado = 'Rechazado'
							THEN sga_constancias_solicitud.fecha_proceso
					END AS fecha_rechazo,
					sga_constancias_solicitud.fecha_entrega,
					sga_constancias_solicitud.presentar_a,
					sga_constancias_solicitud.observaciones,
				    sga_constancias_solicitud.estado,
					sga_constancias_solicitud.alumno,
					sga_constancias_solicitud.fecha_fin_vigencia,
					sga_constancias_solicitud.nro_transaccion,
					sga_constancias_solicitud.codigo_verificacion,
					acc_interfaces.nombre as interfaz_nombre
				FROM 
					sga_constancias_solicitud,
				    sga_constancias, 
				    sga_alumnos,
				    vw_personas,
				    sga_propuestas,
					sga_planes_versiones,
					sga_planes,
					sga_ubicaciones,
					acc_interfaces
				WHERE
					sga_constancias.constancia = sga_constancias_solicitud.constancia
				    AND sga_alumnos.alumno = sga_constancias_solicitud.alumno
					AND vw_personas.persona = sga_alumnos.persona
				    AND sga_propuestas.propuesta = sga_alumnos.propuesta
				    AND	sga_planes_versiones.plan_version = sga_alumnos.plan_version
				    AND sga_planes.plan = sga_planes_versiones.plan
					AND	sga_alumnos.ubicacion = sga_ubicaciones.ubicacion
					AND sga_constancias_solicitud.interfaz = acc_interfaces.interfaz
				     AND sga_constancias_solicitud.solicitud = '310'
				ORDER BY
					sga_constancias.nombre
				
[DEBUG][guarani] SQL con perfil de datos: SELECT	mdp_personas.persona,
						mdp_personas.apellido,
						mdp_personas.nombres
				FROM 	mdp_personas
				WHERE	mdp_personas.usuario = '34112421'
		
[DEBUG][toba] componente(37000555): Pantalla de eventos: 'pant_imprimir_rechazar'
[DEBUG][toba] componente(37000555): [ inicializar_dependencias ]
array (
  0 => 'form_rechazo_solicitud',
)
[DEBUG][toba] componente(37000559):  IMPLICITO: modificacion
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio...
[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 C:\Guarani\gestion/personalizacion/php
[DEBUG][toba] componente(37000552): [ callback ] 'conf__filtro'
[DEBUG][toba] Se filtro el evento: cancelar
[DEBUG][toba] componente(37000552): Pantalla de servicio: ''
[DEBUG][toba] componente(37000552): [ callback ] 'conf__administrar_solicitud'
[DEBUG][toba] componente(37000555): Pantalla de servicio: ''
[DEBUG][toba] componente(37000555): [ callback ] 'conf__pant_imprimir_rechazar'
[DEBUG][toba] componente(37000555): [ callback ] 'conf__form_rechazo_solicitud'
[DEBUG][guarani] SQL con perfil de datos: SELECT 		
						sga_constancias_autoridades.autoridad,
						sga_constancias_autoridades.en_calidad_de,
						sga_autoridades.apellido || ', ' || sga_autoridades.nombres as autoridad_nombre,
						CASE sga_constancias_autoridades.en_calidad_de
	   						WHEN 'T' 
	   							THEN 'TITULAR'
	   						WHEN 'S' 
	   							THEN 'SUPLENTE'
	   					END as autoridad_calidad
				FROM 
						sga_constancias_autoridades,
						sga_autoridades
				WHERE		
						sga_constancias_autoridades.autoridad = sga_autoridades.autoridad AND 
						sga_constancias_autoridades.constancia = '4'
				ORDER BY 	
						en_calidad_de DESC
			   
[INFO][toba] componente(37000552): [ callback ] 'conf__editor' no fue atrapado
[DEBUG][toba] [SECCION] Respondiendo al servicio__vista_jasperreports...
[DEBUG][guarani] SQL con perfil de datos: SELECT		
							mce_plantillas.archivo_plantilla
		 			FROM
			 				sga_constancias,		
			 				mce_plantillas
		 			WHERE
			 				sga_constancias.constancia = '4'
							AND sga_constancias.plantilla =  mce_plantillas.plantilla
					;
[DEBUG][guarani] SQL con perfil de datos: SELECT	
						sga_constancias_solicitud_param.campo,
						sga_constancias_solicitud_param.valor,
						mce_campos.tipo_de_dato
				FROM	
						sga_constancias_solicitud_param,
						mce_campos
				WHERE	
						sga_constancias_solicitud_param.solicitud = '310'
						AND sga_constancias_solicitud_param.campo = mce_campos.campo
				;
[DEBUG][guarani] Seteo el esquema por defecto para el reporte: SET search_path = "negocio", "public";
[CRITICAL][toba] java_InternalException: 

[TRAZA][[o:Exception]:"java.lang.Exception: Invoke failed: [[c:JasperFillManager]]->fillReport((o:String)[o:String], (i:Map)[o:HashMap], (i:Connection)[o:Jdbc4Connection]). Cause: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for : actividades_alumno VM: 1.7.0_67@http://java.oracle.com/" at:
#-23 net.sf.jasperreports.components.list.VerticalFillList.prepare(VerticalFillList.java:141)
#-22 net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:151)
#-21 net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)
#-20 net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:384)
#-19 net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:358)
#-18 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2069)
#-17 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:788)
#-16 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:298)
#-15 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:152)
#-14 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:963)
#-13 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:873)
#-12 net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:87)
#-11 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:287)
#-10 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:760)
#-9 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
#-8 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
#-7 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
#-6 java.lang.reflect.Method.invoke(Unknown Source)
#-5 php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1054)
#-4 php.java.bridge.Request.handleRequest(Request.java:415)
#-3 php.java.bridge.Request.handleRequests(Request.java:491)
#-2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
#-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)
#0 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(248): java_ThrowExceptionProxyFactory->getProxy(11, 'org.postgresql....', '', true)
#1 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(389): java_Arg->getResult(true)
#2 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(395): java_Client->getWrappedResult(true)
#3 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(595): java_Client->getResult()
#4 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(1732): java_Client->invokeMethod(1, 'fillReport', Array)
#5 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(1840): java_JavaProxy->__call('fillReport', Array)
#6 C:\Guarani\gestion\lib\toba\php\3ros\JavaBridge\java\Java.inc(2008): java_AbstractJava->__call('fillReport', Array)
#7 C:\Guarani\gestion\lib\toba\php\nucleo\lib\salidas\toba_vista_jasperreports.php(309): Java->__call('fillReport', Array)
#8 C:\Guarani\gestion\lib\toba\php\nucleo\lib\salidas\toba_vista_jasperreports.php(309): JavaClass->fillReport('C:\\Guarani\\gest...', Object(Java), Object(java_InternalJava))
#9 C:\Guarani\gestion\lib\toba\php\nucleo\lib\salidas\toba_vista_jasperreports.php(254): toba_vista_jasperreports->completar_con_datos()
#10 C:\Guarani\gestion\lib\toba\php\nucleo\toba_solicitud_web.php(329): toba_vista_jasperreports->generar_salida()
#11 C:\Guarani\gestion\lib\toba\php\nucleo\toba_solicitud_web.php(185): toba_solicitud_web->servicio__vista_jasperreports(Array)
#12 C:\Guarani\gestion\lib\toba\php\nucleo\toba_solicitud_web.php(60): toba_solicitud_web->procesar_servicios()
#13 C:\Guarani\gestion\lib\toba\php\nucleo\toba_nucleo.php(79): toba_solicitud_web->procesar()
#14 C:\Guarani\gestion\www\aplicacion.php(27): toba_nucleo->acceso_web()
#15 {main}]

También verifiqué a través de “ei_arbol()” si esta mandando los parametros al reporte y los esta mandando sin problemas.
La verdad es que es un caso muy raro y no se que puede ser.
Gracias por su ayuda!!

Hola Jason,
por lo que se muestra en el log parecería que hay algún error al ejecutar la consulta que permite obtener el listado de actividades. Podés pasarnos los datos de cómo tenés configuradas las bases en ambos ambientes? Pueden probar ejecutando directamente sobre la base de producción la sql que te adjunto, que es la que se está realizando en ese subdataset, reemplazando el parámetro alumno por algún valor existente.

Saludos,
Gabriela.


sql_actividades_alumno.txt (931 Bytes)

Bingooooooooo!!!

En el schema public de desarrollo tengo un total de 35 funciones.
Y en el schema public de producción tengo 33 funciones.

Una de las que me falta es esa!!!

Que me recomiendan? Creo las funciones faltantes manualmente o reviso diferenciales?

Hola Jason,
qué pasos realizaron en la instalación de producción? Tenían una instalación previa que actualizaron a la versión 3.11.1 o fue una instalación de cero en producción?
Los pasos a seguir en una actualización son: http://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.11.0/actualizacion_de_produccion/gestion
Tuvieron algún error durante la ejecución del migrar base?
Si te parece, te pido que nos levantes un Gds, para poder ver exactamente cuál es el estado actual de su base y qué es necesario ejecutar para dejarla estable.

Saludos,
Gabriela.

Gracias!!!

Venimos actualizando el sistema desde la versión 3.8 hasta la ultima versión actual (3.11.1)

No nos dió ningún error en la actualización.
Va GDS con referencia a este tema.

Gracias!!