jueves, 6 de septiembre de 2012

Ubicar reportes en adempiere

create or replace function sp_ubicar_reporte(hostname varchar, port varchar)
returns boolean as $$
begin
    update ad_process
        set jasperreport = 'http://' || hostname || ':' || port || '/reports/' ||
        substring( jasperreport, position('reports/' in  jasperreport) + 8, length( jasperreport))
    where isreport = 'Y'
    and (jasperreport is not null or jasperreport <> '');
    
    return true;
end;
$$ language plpgsql;

7 comentarios:

  1. Hola.

    Tengo un problema con la ejecucion de un reporte en local. Añado al jasper reports de la opcion Report &Process la ruta. file://C:\Adempiere\reportes\newReport.jrxml y creo una opcion de proceso para su ejecucion.

    Al ejecutar el proceso me sale el error que no se encuentra el mismo.

    -------------------------------
    -----------> MIssue.set_ValueNoCheck: ReleaseNo - Value too long - truncated to length=4 [59]
    -----------> Msg.getMsg: NOT found: ProcessError [60]
    ===========> ProcessUtil.startJavaProcess: org.compiere.report.ReportStarter [60]
    java.lang.IllegalArgumentException: URI has an authority component
    at java.io.File.(Unknown Source)
    at org.compiere.report.ReportStarter.getReportFile(ReportStarter.java:769)
    at org.compiere.report.ReportStarter.getReportFile(ReportStarter.java:747)
    at org.compiere.report.ReportStarter.startProcess(ReportStarter.java:411)
    at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:160)
    at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:105)
    at org.compiere.apps.ProcessCtl.startProcess(ProcessCtl.java:649)
    at org.compiere.apps.ProcessCtl.run(ProcessCtl.java:432)
    at java.lang.Thread.run(Unknown Source)

    -------------------------------
    -----------> MIssue.set_ValueNoCheck: ReleaseNo - Value too long - truncated to length=4 [60]
    -----------> ReportStarter.getReportFile: Illegal character in authority at index 7: file://C:\Adempiere\reportes\newReport.jrxml [61]
    ===========> ReportStarter.startProcess: No report file found for given type, falling back to file://C:\Adempiere\reportes\newReport.jrxml [61]
    -------------------------------
    -----------> MIssue.set_ValueNoCheck: ReleaseNo - Value too long - truncated to length=4 [61]
    -----------> ReportStarter.getReportFile: Illegal character in authority at index 7: file://C:\Adempiere\reportes\newReport.jrxml [61]
    ===========> ReportStarter.startProcess: Can not find report file at path - file://C:\Adempiere\reportes\newReport.jrxml [61]

    ¿Cual sera el problema ?, creo q la clase startProcess no lee mi version de ireport.

    alguna sugerencia?

    Gracias..

    ResponderEliminar
    Respuestas
    1. 1) El archivo jrxml debe estar ubicado en "C:\Adempiere\reports\MiReporte.jrxml"
      2) Entra al sistema y registra el reporte en el menu "Diccionario de la Aplicacion > Informes & Procesos", al final en el campo "Reporte Jasper" solo escribes MiReporte.jrxml
      3) Listo, esto debería funcionar

      Eliminar
    2. La otra observacion, es que te esta enviando una excepcion "URI has an authority component", creo que esto es con la version del iReport, si estas usando el Adempiere 360 LTS, y el iReport que estas usando es 4.8, debes ir al menu Herramientas > Opciones > General > Compatibilidad, seleccionas la version "Jasper Report 3.5.0"

      Eliminar
    3. Si quieres abrir un reporte jasper en Adempiere ZKWebui, entonces debes entrar al iReport en el menu Herramientas > Opciones > General > Report Defaults, seleccionar el lenguaje Java, o bien lo haces desde las propiedades del reporte, busca la propiedad language y lo cambias de Groovy a Java

      Eliminar
  2. Gracias por responder. intentare lo que me indicas y te aviso..

    ResponderEliminar
  3. Eso era, con el .jasper me funcionó ya habia probado muchas versiones de ireport y nada. Muchas Gracias. ;)

    ResponderEliminar
  4. Funcionó desde el cliente desktop, voy a probar desde el web.

    ResponderEliminar