Error al generar reporte PDF (RESPONDIDO)

buenas tardes,

Al intentar ver una orden de compra (el pdf) el sistema tira un error. → " Failed to parse the xml document"
Es solamente con una orden de compra especifica. Lo mismo ocurre cuando se intenta abrir el pliego de la orden de asociada.

Creo que puede haber algún carácter “raro” cargado en algún renglón de la convocatoria y hace ruido al generar el xml. No encuentro como resolverlo.

Adjunto código del log.


-o-o-o-o-o-
Fecha: 03-07-2017 19:12:20
Operacion: Ficha orden de compra <b>27/2017</b><div style="float:right;"><button type='button' name='ci_103000113_volver' id='ci_103000113_volver' value=''   title='' class='ei-boton boton-volver' onclick="js_ci_103000113.set_evento(new evento_ei('volver', false, '' ), true, this);"  ><span>Volver</span></button>
</div>
Usuario: toba
Version-PHP: 5.4.45-1~dotdeb+6.1
Servidor: diaguita.unm.edu.ar
URI: /siu/diaguita/aplicacion.php?ah=st595ac140353456.14612828&ai=diaguita||103000022&tz=1&0=tcm=previsualizacion&ts=vista_jasperreports&xsl_metodo_clase=dao_orden_compra&xsl_metodo_nombre=get_detalle_orden_compra&xsl_metodo_parametro=id_orden_compra||190&XSL__dao_orden_compra__get_domicilios_x_proveedor=id_orden_compra||190&XSL__dao_orden_compra__get_reserva_presupuestaria=id_orden_compra||190&XSL__dao_orden_compra__get_compromisos_presupuestarios=id_orden_compra||190&XSL__dao_orden_compra__get_item_solicitados=id_orden_compra||190&XSL__dao_orden_compra__get_total_xsl=id_orden_compra||190&XSL__dao_orden_compra__get_fecha_inicio_tramite=id_orden_compra||190&XSL__dao_consultas__get_oficinas_contrataciones_datos=id_convocatoria||244
Referrer: http://diaguita.unm.edu.ar/siu/diaguita/aplicacion.php?ah=st595ac13d97dbe0.44006459&ai=diaguita||103000022&id_orden_compra=190
Host: 10.1.0.31
==========
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase extension_toba/diaguita_pers_sesion.php del punto de montaje personalizacion. El path del mismo es /usr/local/siu/diaguita/aplicacion/personalizacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase extension_toba/diaguita_pers_usuario.php del punto de montaje personalizacion. El path del mismo es /usr/local/siu/diaguita/aplicacion/personalizacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/ci_ficha_orden_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/cn_orden_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/agenda/cn_agenda.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase convocatorias/cn_convocatoria.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/agenda/cn_agenda.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase modelo_compras/cn_modelo_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase solicitud_suministro/cn_solicitud_suministro.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/ei_ficha_orden_compra_detalle_orden.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][toba] componente(103000113): [ callback ] 'conf__pant_inicial' no fue atrapado
[CRITICAL][toba] java_InternalException: Failed to parse the xml document

[TRAZA][[o:Exception]:"java.lang.Exception: Invoke failed: [[c:JRXmlUtils]]->parse((o:InputStream)[o:FileInputStream]). Cause: net.sf.jasperreports.engine.JRException: Failed to parse the xml document VM: 1.6.0_31@http://java.sun.com/" at:
#-11 net.sf.jasperreports.engine.util.JRXmlUtils.parse(JRXmlUtils.java:76)
#-10 net.sf.jasperreports.engine.util.JRXmlUtils.parse(JRXmlUtils.java:149)
#-9 net.sf.jasperreports.engine.util.JRXmlUtils.parse(JRXmlUtils.java:136)
#-8 sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)
#-7 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
#-6 java.lang.reflect.Method.invoke(Method.java:622)
#-5 php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1077)
#-4 php.java.bridge.Request.handleRequest(Request.java:414)
#-3 php.java.bridge.Request.handleRequests(Request.java:490)
#-2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
#-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)
#0 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(248): java_ThrowExceptionProxyFactory->getProxy(7, 'net.sf.jasperre...', 'Failed to parse...', true)
#1 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(388): java_Arg->getResult(true)
#2 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(394): java_Client->getWrappedResult(true)
#3 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(594): java_Client->getResult()
#4 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(1731): java_Client->invokeMethod(4, 'parse', Array)
#5 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(1839): java_JavaProxy->__call('parse', Array)
#6 /usr/local/siu/diaguita/toba/php/3ros/JavaBridge/java/Java.inc(2007): java_AbstractJava->__call('parse', Array)
#7 /usr/local/siu/diaguita/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(298): Java->__call('parse', Array)
#8 /usr/local/siu/diaguita/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(298): JavaClass->parse(Object(java_InternalJava))
#9 /usr/local/siu/diaguita/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(258): toba_vista_jasperreports->completar_con_datos()
#10 /usr/local/siu/diaguita/toba/php/nucleo/toba_solicitud_web.php(330): toba_vista_jasperreports->generar_salida()
#11 /usr/local/siu/diaguita/toba/php/nucleo/toba_solicitud_web.php(185): toba_solicitud_web->servicio__vista_jasperreports(Array)
#12 /usr/local/siu/diaguita/toba/php/nucleo/toba_solicitud_web.php(60): toba_solicitud_web->procesar_servicios()
#13 /usr/local/siu/diaguita/toba/php/nucleo/toba_nucleo.php(81): toba_solicitud_web->procesar()
#14 /usr/local/siu/diaguita/aplicacion/www/aplicacion.php(23): toba_nucleo->acceso_web()
#15 {main}]

-o-o-o-o-o-
Fecha: 03-07-2017 19:12:23
Operacion: Ficha orden de compra <b>27/2017</b><div style="float:right;"><button type='button' name='ci_103000113_volver' id='ci_103000113_volver' value=''   title='' class='ei-boton boton-volver' onclick="js_ci_103000113.set_evento(new evento_ei('volver', false, '' ), true, this);"  ><span>Volver</span></button>
</div>
Usuario: toba
Version-PHP: 5.4.45-1~dotdeb+6.1
Servidor: diaguita.unm.edu.ar
URI: /siu/diaguita/aplicacion.php?ah=st595ac13d97dbe0.44006459&ai=diaguita||103000022&id_orden_compra=190
Referrer: http://diaguita.unm.edu.ar/siu/diaguita/aplicacion.php?ah=st595ac1369d1820.76981941&ai=diaguita||500000002&ci=101000413&concepto=30
Host: 10.1.0.31
==========
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase extension_toba/diaguita_pers_sesion.php del punto de montaje personalizacion. El path del mismo es /usr/local/siu/diaguita/aplicacion/personalizacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase extension_toba/diaguita_pers_usuario.php del punto de montaje personalizacion. El path del mismo es /usr/local/siu/diaguita/aplicacion/personalizacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/ci_ficha_orden_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/cn_orden_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/agenda/cn_agenda.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase convocatorias/cn_convocatoria.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/agenda/cn_agenda.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase modelo_compras/cn_modelo_compra.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase solicitud_suministro/cn_solicitud_suministro.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase administracion/autorizaciones/cn_autorizaciones.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php
[INFO][toba] componente(103000113): No hay señales de un servicio anterior, no se atrapan eventos
[INFO][toba] componente(103000113): [ callback ] 'conf__pant_inicial' no fue atrapado
[INFO][diaguita] PUNTO MONTAJE: se cargó la clase orden_de_compra/ei_ficha_orden_compra_detalle_orden.php del punto de montaje proyecto. El path del mismo es /usr/local/siu/diaguita/aplicacion/php



Espero sus comentarios.

Hola Diego, buenas tardes!

Efectivamente se trataría de un caracter extraño que produce que se rompan las impresiones. Te recomiendo que arranquen verificando primero las impresiones a ver cuales funcionan y a partir de cual se rompe. De esta forma pueden intentar determinar aproximadamente donde se encuentra ese caracter extraño, y después de haber identificado el lugar probable, desde la ficha o la BD vía pgadmin o consola, empezar a revisar los registros y campos a ver que caracteres extraños hay y en la medida que los encuentren, eliminarlos del registro de la BD.

Tengan en cuenta que pueden considerase caracteres extraños a cualquier caracter que no sean letras, números y guiones. Como ser º %& o que se vean como un simbolo raro si es que el pgadmin no es capaz de representarlo.

Si hecho esto no logran determinar que puede ser, creen un GDS y suban la BD así vemos nosotros que puede ser

Seguimos en contacto!.

Saludos,
Fernando.

Buenas tardes, Fernando.
Efectivamente encontré unos caracteres raros en el campo “especificación” de la tabla “diaguita.scp_items_solicitados”. Los modifique manualmente y anduvo perfecto.

No entiendo bien porque se veía una "US"pintada, que remplazaba a la silaba “fi”. Lo expongo a modo de comentario.

Desde ya muchas gracias.

Saludos
Diego P
UNM

Buenísimo Diego, gracias por el feedback!

Saludos!,
Fernando.