#1 2013-02-21 14:42:33

flohtschi
Member
Registered: 2013-02-14

BIRT Report Parameter

Hi,

hätte da zwei Fragen:

1. Wo hinterlege ich .rptlibary Files?
2. mein Report enthält 3 Parameter
.) einen is required String
.) und zwei Parameter Date welche nicht required sind.

Nun will ich diesen Report starten lasse. Da ich die neuste Beta verwende lasse ich mir die Parameter automatisch vorschlagen.

Beim Ausführen lasse ich die zwei nicht required Date Parameter leer.

Jedoch bekomme ich folgende Fehlermeldung:

Feb 21, 2013 3:33:55 PM net.datenwerke.rs.core.server.reportexport.ReportExportServlet doGet
WARNING: Der Bericht konnte nicht ausgeführt werden: null
net.datenwerke.rs.core.service.reportmanager.exceptions.ReportExecutorException: Der Bericht konnte nicht ausgeführt werden: null
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:218)
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:119)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exeucteReport(ReportExportServlet.java:463)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReport(ReportExportServlet.java:354)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportViaSession(ReportExportServlet.java:289)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doGet(ReportExportServlet.java:155)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30.CGLIB$doGet$0(<generated>)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30$$FastClassByGuice$$ec7c14d3.invoke(<generated>)
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30.doGet(<generated>)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30.CGLIB$service$17(<generated>)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30$$FastClassByGuice$$ec7c14d3.invoke(<generated>)
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$538c7c30.service(<generated>)
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: net.datenwerke.rs.core.service.reportmanager.exceptions.ReportExecutorRuntimeException
    at net.datenwerke.rs.birt.service.reportengine.output.generator.BirtPDFOutputGenerator.exportReport(BirtPDFOutputGenerator.java:49)
    at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.executeReport(BirtReportEngine.java:118)
    at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.doExecute(BirtReportEngine.java:77)
    at net.datenwerke.rs.core.service.reportmanager.engine.ReportEngine.execute(ReportEngine.java:127)
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:186)
    ... 50 more
Caused by: org.eclipse.birt.report.engine.api.impl.ParameterValidationException: The type of parameter "Endtime" is expected as "date", not "java.util.Date". (Element ID:659)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.validateParameterValueType(EngineTask.java:889)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.validateAbstractScalarParameter(EngineTask.java:845)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.access$0(EngineTask.java:772)
    at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterValidationVisitor.visitScalarParameter(EngineTask.java:702)
    at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterVisitor.visit(EngineTask.java:1498)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.doValidateParameters(EngineTask.java:688)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:94)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at net.datenwerke.rs.birt.service.reportengine.output.generator.BirtPDFOutputGenerator.exportReport(BirtPDFOutputGenerator.java:33)
    ... 54 more

Danke

Grüße
Flo

Offline

#2 2013-02-21 15:39:30

Thorsten J. Krause
datenwerke
Registered: 2012-02-15
Website

Re: BIRT Report Parameter

Hi,

die Unterstützung für Reportlibraries ist so umgesetzt, dass ein Ordner in ReportServers internem Fileserver als Library-Folder deklarieren werden kann und Libraries dann aus diesem geladen werden.

Die Festlegung welcher Ordner hierfür verwendet werden soll, erfolgt über die Datei reportserver.properties in im ReportServer Installationsverzeichnis. Die entsprechende Eigenschaft ist

  rs.birt.library.folder.id

diese muss auf die Id des vorgesehenen Ordners gesetzt werden.


Die Datumsparameter muss ich mir erst nochmal genau ansehen, aber auf den ersten Blick sieht es so aus, als verwendet Birt intern nicht java.util.Date sondern java.sql.Date
http://www.birt-exchange.org/org/forum/ … r-problem/

Wenns wirklich nur der falsche Typ ist, denke ich, haben wir das morgen auch gepatcht.

Grüße
Thorsten

Offline

#3 2013-02-21 19:58:32

Thorsten J. Krause
datenwerke
Registered: 2012-02-15
Website

Re: BIRT Report Parameter

Hi,

nochmal zu den Datumsparametern: Birt unterscheidet hier zwischen Date, Time und DateTime Parameter. Die Unterscheidung findet jedoch nicht nur in der Darstellung statt, sondernes werden auch je nach Parametertyp andere Datentypen erwartet. Während DateTime das übliche java.util.Date akzeptiert, erwarten Parameter von Typ Time bzw. Date ihre Daten als java.sql.Date respektive java.sql.Time.

Das ganze ist jetzt im svn repariert, die neue Version ist dann Freitag früh auf sourceforge. Alternativ kannst Du als Workaround den Parametertyp in Birt auch einfach auf DateTime stellen. Wichtig ist es dann künftig in den Parametereigenschaften in ReportServer den Modus des Datumsparameter passend zum Bericht einzustellen, sonst tritt weiterhin der bekannt Fehler auf.

Viele Grüße
Thorsten

Offline

#4 2013-02-22 11:39:46

flohtschi
Member
Registered: 2013-02-14

Re: BIRT Report Parameter

Hi,

mein Report hat folgenden Parameter.

Name:
Object_Version

Data type:
String

Display type:
List Box (Wobei mir genügt es für den Anfang ihn per Texteingabefeld zu übergeben)

Feb 22, 2013 12:30:44 PM net.datenwerke.rs.core.server.reportexport.ReportExportServlet doGet
WARNING: Der Bericht konnte nicht ausgeführt werden: null
net.datenwerke.rs.core.service.reportmanager.exceptions.ReportExecutorException: Der Bericht konnte nicht ausgeführt werden: null
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:218)
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:119)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exeucteReport(ReportExportServlet.java:463)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReport(ReportExportServlet.java:354)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportViaSession(ReportExportServlet.java:289)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doGet(ReportExportServlet.java:155)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0.CGLIB$doGet$0(<generated>)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0$$FastClassByGuice$$afe7c011.invoke(<generated>)
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0.doGet(<generated>)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0.CGLIB$service$17(<generated>)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0$$FastClassByGuice$$afe7c011.invoke(<generated>)
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$ba99aec0.service(<generated>)
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: net.datenwerke.rs.core.service.reportmanager.exceptions.ReportExecutorRuntimeException
    at net.datenwerke.rs.birt.service.reportengine.output.generator.BirtPDFOutputGenerator.exportReport(BirtPDFOutputGenerator.java:49)
    at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.executeReport(BirtReportEngine.java:144)
    at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.doExecute(BirtReportEngine.java:81)
    at net.datenwerke.rs.core.service.reportmanager.engine.ReportEngine.execute(ReportEngine.java:127)
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:186)
    ... 50 more
Caused by: org.eclipse.birt.report.engine.api.impl.ParameterValidationException: The type of parameter "Object_Version" is expected as "Object[]", not "java.lang.String". (Element ID:43)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.validateAbstractScalarParameter(EngineTask.java:840)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.access$0(EngineTask.java:772)
    at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterValidationVisitor.visitScalarParameter(EngineTask.java:702)
    at org.eclipse.birt.report.engine.api.impl.EngineTask$ParameterVisitor.visit(EngineTask.java:1498)
    at org.eclipse.birt.report.engine.api.impl.EngineTask.doValidateParameters(EngineTask.java:688)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:94)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at net.datenwerke.rs.birt.service.reportengine.output.generator.BirtPDFOutputGenerator.exportReport(BirtPDFOutputGenerator.java:33)
    ... 54 more

Offline

#5 2013-02-22 11:42:10

flohtschi
Member
Registered: 2013-02-14

Re: BIRT Report Parameter

Hi,

falls ihr Feedback in einer strukturierteren Form benötigt, bzw. mehr oder andere Informationen(Log, Szenario, rptdesign Beispiel,...)

Lasst es mich wissen wink

Grüße
Flo

Offline

#6 2013-02-22 14:20:09

Thorsten J. Krause
datenwerke
Registered: 2012-02-15
Website

Re: BIRT Report Parameter

Hi,

da passen die Parametertypen nicht zusammen. Wenn Du in Birt einen Parameter als Liste angelegt hast, musst Du auch in ReportServer einen Listenparameter wählen.

Die einfachste Möglichkeit ist es, einen Datenquellenparameter zu nehmen und die Werte mittels einer Query zu liefern. Alternativ kannst Du auch eine CSV oder Birt-Berichtsdatenquelle anlegen und diese dann im Datenquellenparameter benutzen.

Ich hoffe das hilft Dir weiter,
Viele Grüße
Thorsten

Offline

Board footer

Powered by FluxBB