#1 2014-03-11 15:34:09

tomharney
Member
Registered: 2014-03-11

Object Details - Informationen / Anderungshistorie

Any time I click on a report these two tabs (Informationen / Anderungshistorie) display an error:

Is it a permissions error?   I have full rights (rwxdg).

Fehler: An error occured during report execution.
No entity found for query
Im Falle eines nicht nachvollziehbaren Fehlers kontaktieren Sie bitte einen Administrator.
Details:
javax.persistence.NoResultException: No entity found for query at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:286) at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getSingleResult(CriteriaQueryCompiler.java:258) at net.datenwerke.rs.utils.simplequery.byatt.QueryByAttProcessor.process(QueryByAttProcessor.java:108) at net.datenwerke.rs.utils.simplequery.byatt.QueryByAttInterceptor.invoke(QueryByAttInterceptor.java:25) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.getReportId(ReportExportServlet.java:542) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportByIdViaRequest(ReportExportServlet.java:232) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doGet(ReportExportServlet.java:153) at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66) at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110) 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:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Offline

#2 2014-03-12 21:08:16

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

Re: Object Details - Informationen / Anderungshistorie

Hi,

the two tabs in question just display the results of a report execution, by calling a url.
You can have a look at the etc/ui/urlview.cf file, that should give you an idea.

It seems somehow these reports got removed or corrupted. On a fresh install the reports are located in the "Scriptreports" folder.
Please verify that your system still has these reports and their KEY attribute matches the key in the aforementioned config file.

If the reports got lost you can recover them from the demobuilde package. Check the pkg folder below your reportserver installation folder for the file demobuilder-RSxxx.zip
inside this file you will find a file named export_demo_scriptreports.zip. You can import this file using the import feature from the ReportServer Admin module.


Cheers,
Thorsten

Offline

#3 2014-03-18 20:24:04

tomharney
Member
Registered: 2014-03-11

Re: Object Details - Informationen / Anderungshistorie

Thorsten, you were correct.  The base installation is missing these items.

This was a great exercise!

Would it be safe to say that I could use these script reports as examples to answer the question I had here?

http://blog.datenwerke.net/2013/06/addi … bases.html

Thorsten J. KrauseDecember 3, 2013 at 4:43 PM
Another approach, if you strictly don't want to do this in the database, would be to use a script datasource. In this case a groovy script would execute the procedure, load the data and provide it to the dynamic list. There is some performance penalty to doing it this way, so it's only viable for moderately sized datasets. If you like I'll write up an example.

Offline

#4 2014-03-18 22:01:04

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

Re: Object Details - Informationen / Anderungshistorie

Tom,

sorry - I entirely forgot about your comments on the blog.

You can use these scripts as examples to get started with ReportServer scripting, but they are a slightly different concept than the script datasources I mentioned on the blog.

Script datasource are used to receive data from a (nonstandard) backend system. The data is than passed on to another report engine (e.g a dynamic list) and can then be used just as any sql datasource.

Script reports on the other hand also include the rendering of the report and return the finished pdf, html, ... document.

Let me give you two short examples to illustrate the difference:

A script report:

import net.datenwerke.rs.core.service.reportmanager.engine.CompiledReport;
import net.datenwerke.rs.core.service.reportmanager.engine.CompiledReportImpl

Object report = new byte[100]; //IOUtils.toByteArray(new FileReader("/tmp/file.pdf"))
String mimeType = "application/pdf";
String fileExtension = "pdf";
boolean hasData = true;
boolean stringReport = false;

return new CompiledReportImpl(report, mimeType, fileExtension, hasData, stringReport);

A script datasource:

import java.util.Arrays;
import java.util.List;

import net.datenwerke.rs.base.service.reportengines.table.output.object.RSTableModel;
import net.datenwerke.rs.base.service.reportengines.table.output.object.RSTableRow;
import net.datenwerke.rs.base.service.reportengines.table.output.object.TableDefinition;

List<String> names = Arrays.asList("colOne", "colTwo");
List types = (List)Arrays.asList(String.class, String.class);

TableDefinition tableDefinition = new TableDefinition(names, types);
RSTableModel table = new RSTableModel(tableDefinition);

Object[] data = ["col1row1", "col2row1"];
RSTableRow row = new RSTableRow(tableDefinition, data);

table.addDataRow(data);

return table;

Cheers,
Thorsten

Offline

Board footer

Powered by FluxBB