Friday, September 02, 2005

BIRT 1.0.1 Feature Set

Eclipse Business Intelligence and Report Tools (BIRT) Project


Introduction


BIRT is an Eclipse-based open source reporting platform for web applications, especially those based on Java and J2EE. BIRT has two main components: a report designer based on Eclipse, and a runtime component that you can deploy to your application server. BIRT also has a charting engine that lets you include charts in your BIRT reports or add standalone charting capabilities to Java applications.



Report Designer


Application development with BIRT starts with the report designer. This Eclipse-based interface offers an HTML page-oriented design metaphor (similar to Adobe Dreamweaver and other HTML editors) to build reports that are intuitive to create and integrate easily into web applications. Key components include:



  • Data Explorer – Manages your data sources (connections) and data sets (queries).

  • Layout View – WYSIWYG editor that provides drag and drop creation of the presentation portion of your report.

  • Report Item Palette – A palette with a rich set of visual elements such as containers (tables, grids, lists), labels and others.

  • Expression Builder – Provides an interface to create calculated fields, format existing ones or perform other data-oriented calculations.

  • Style Builder – Creates and manages CSS-like styles for consistent formatting.

  • Property Editor – Presents the most commonly used properties in a convenient format that makes editing quick and easy.

  • Report Preview – Allows you to test your report at any time with real data.

  • Code Editor – Edits custom business logic to be executed during data access, report generation, or viewing.

  • Chart Wizard – Defines and formats charts and their accompanying legends and axes.

  • Outline – Provides a compact overview of your entire report structure.

  • Cheat Sheets – Offer step-by-step instruction on commonly performed tasks to shorten the learning curve.


BIRT provides two flavors of designer: a plug-in for the Eclipse IDE, or a Rich Client Platform (RCP) version that offers a simplified interface without the additional perspectives in the standard Eclipse platform.


Report Design File


The report design file, as expressed by the BIRT Report Object Model (ROM), is the key design “artifact” associated with a report. It contains the elements that make up a report, including visual design components such as a table or an image and other non-visual items such as report parameters, formatting styles and data sources.


The designer allows the user to define these elements, the design file stores the elements in an XML format adhering to the ROM, and the report engine interprets the elements to produce a report document as output.


Report Engine and the BIRT Viewer


The BIRT report engine API allows you to integrate the run-time part of BIRT into your application as a set of POJOs (Plain Old Java Objects). The engine enables you to discover the parameters defined for a report and get their default values, incorporate included images or charts, retrieve needed data and transform it as necessary and, finally, render the report in HTML or PDF. Report execution also encompasses execution of any custom business logic associated with the report that is written in JavaScript or Java.


Included with the BIRT distribution is a sample BIRT viewer. It is used within the report designer for the preview operation, but can also be used as a simple user interface in your Java application to prompt for report parameters prior to report execution via the report engine API.


Chart Engine


The chart engine provides a rich business chart generation capability to be used standalone or invoked from the report engine. The chart engine supports creation of pie, bar, line, scatter and stock charts, all of which can be rendered in the following graphic formats: 8-bit images, 24-bit images, SWT graphics (GC), SWING graphics (Graphics2D) and SVG.


Design Engine API


The BIRT Design Engine API (DEAPI) enables the programmatic creation or modification of report designs and also provides for interrogation of report elements and semantic checking.


Extensibility


BIRT is more than a reporting tool; it is an extensible reporting framework. As such, it provides a number of extension points to support application-specific and general-purpose modifications. These include:



  • The Open Data Access (ODA) framework, which enables the addition of new data sources to BIRT. It provides for both a runtime driver and a design time user interface.

  • Custom scripting to incorporate complex and/or application specific business logic into report designs.

  • APIs that permit the introduction of new visual components into reports and new attributes for existing components.

  • Pluggable architecture for incorporating custom charts and new graphic formats into the charting engine.


Internationalization


BIRT is Unicode enabled, and supports creation of reports in any locale, with the exception of Right-to-Left languages.











39 comments:

Nicolas said...

I understand the advantege of such a tool in eclipse.

But from a broader ecosystem perspective, how does it position itself in front of excel:

+more versatile output format (web, etc)

-less interactivity on the report, no possibility to scratch out calculus

What's your view on this?

Jason Weathersby said...

Buck,

Here is a note from the BIRT news groups from Paul Clenahan, that sums up WRD development.

++++++++++++++

The WRD component of the BIRT project is a "future" piece. Right now, we
are focusing our efforts on the core reporting technology that you see
as part of the BIRT Report Designer, Report Engine and associated
integration and extension points.

It is worth noting that BIRT provides the support that would allow you
to create a web based report designer today. Since the BIRT Report
Design format is XML, you can build a web application that creates an
XML Report Design, and then runs that design using the Report Engine. In
other words, you do not use the BIRT Report Designer to design the
report, you use your custom web application. I have seen interest in
this since it allows you to create a design environment in the context
of your application (using the business terms that the rest of your
application uses, for example). Within this approach there are two
variants -- creating an XML report design from scratch, or manipulating
an existing XML report design.

Hope this helps.

Regards,

Paul Clenahan
BIRT PMC

Jason Weathersby said...

Nicolas,

Great question. I really dont see BIRT as a competing technology to Excel, although both have a small union of features. In some cases they actually complement each other. BIRT is currently addressed at more the embedded market and the developer coding reports with languages like JSP, PHP, Java, etc.

It is somewhat difficult to do a plus minus feature break down on a tool like BIRT. You use, as a minus "no possibility to scratch out calculus", which on the surface would appear true, but due to the nature of the way the product has been engineered this is quite possible. We have no Calculus control, but we have hooks to develop one, or hooks to call a Java library with that functionallity.

Jason

Anonymous said...

I am using grouping in table.
Inside one column i am using a chart.
I need that chart should use that groped data which my table is using.
how can i do that.

Anonymous said...

i am Trying to genrate a reports
using Servlets and Jdbc when i write a Inner quries it is not Accepting can any one plz send me how to execute the Multiple Quries at a time in Birt

Unknown said...

Hi
i want to save the report in Excel file
can u help on this
give some example code using api

Jason Weathersby said...

What version of BIRT are you using?

Jason

Anonymous said...

I have recently found great post about how to incorporate business...It really will be useful for your business if you read that!

sudhi said...

Hi,
I am using BIRT 2.3.1 for creating reports in my web application.I downloaded the deployement package also,I dont how to deploy war file to my application.Please tell me how i can deploy reports to my application,and can we access the report from a link

Thanks and Regards
Sudheesh

sudhi said...

sorry how to deploy reports(not war file)

Jason Weathersby said...

You can put the reports in the war file or somewhere on your system. When you use the __report url parameter you can specify relative to the context or to a hard location eg c:/myreports/testreport.rptdesign.

sudhi said...

Hi Jason Weathersby,
Very thanks for your reply.When i did like this,it is showing the XML page.And also i want to create dynamic reports using BIRT,and also i want to put some logic also.How it is possible
Hoping Your reply
Sudheesh

Jason Weathersby said...

What servlet mapping are you using in the URL? Take a look at this page:
http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php

Jason

sudhi said...

Hi Jason Weathersby,
Thanks for your kind help,I want to know how to deploy/run the reports using birt reportEngine (birt-runtime-2_3_1).After going through the http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php
I didnt get exactly how to do it ,Pls help me
Sudi

Jason Weathersby said...

sudhi,

If you want to use the report engine api take a look at this page:
http://www.eclipse.org/birt/phoenix/deploy/reportEngineAPI.php

sudhi said...

Hi All,

I have created one simple Birt report example in Eclipse.I can able to run that report through Eclipse-->File-->View Report. It is working fine.I want know how to run that report by giving a link,because mine is a web application.

Pls let me know how to do that.

Thanks

Jason Weathersby said...

Download the Report Engine download and extract it. Use the WebViewerExample J2EE app. It is described here:
http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php

sudhi said...

Hi Jason,
Very much thanks for your kind help.
Now i want to create reports .While running the reports i got error regarding the jdbc connectivity.I am giving the error i got.

org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc. Cannot load JDBC Driver class: org.gjt.mm.mysql.Driver.

Jason Weathersby said...

Take a look at the viewer install page. It has a section on JDBC drivers.
http://www.eclipse.org/birt/phoenix/deploy/viewerSetup.php#install_jdbc

sudhi said...

Hi Jason,
Thanks again for your help.I can able to connect to database now.I have a requirement to do One report.It is the attendance data for One month.For One all employees.Date 1-end of month i need to capture data from db table,Date should be dynamic depends on the month,
And also after displaying status of all the employees i need to add each stauts per employee ,Means How many leaves he taken,How many Week offs etc.

I dont know where to do these calculations in Birt.I expecting your help.
Thanks
Sudheesh

Jason Weathersby said...

Take a look at this example report

http://www.birt-exchange.com/devshare/designing-birt-reports/687-set-a-date-parameter-value-to-last-day-of-the-month/#description

sudhi said...

Hi Jason,

Suppose we want to do some operations according to the db query out put ,eg.add all the leaves,add all present etc,And also the display table should be dynamic,ie leaves are coming from masters tables,I need to find out each leave how much,so the heading should come 1-31 of the month and all leave types,total working days etc.

Expecting your help.
Sudheesh

sudhi said...

HI,

I want to create a report using BIRT. In the report parameter i will select month and year.After selecting this fields,i want to pass employee id and date (1 to end of month)
for getting the result.Here for each employee i want to pass 1- end of month dates.

And also in output also i want to display like

EMPLOYEE_ID 1 2 3 .................31
456 ------->X X x...................X

Pls tell me how to achieve that
Sudheesh

Jason Weathersby said...

Sudheesh,

What exactly are you having an issue with?

Jason

sudhi said...

Hi Jason,
I want to create a little complicated report.Here i have to generate Attendance report for One month,
Single query will not help here,First to get all employees .
Second i have to pass date 1-01-2009 to 30-01-2009 and employee id to get result for each date for single employee.Like this i want to pass all employees.

Jason Weathersby said...

Why not use two tables. One nested in the other. The outer queries the dates for students. The inner query gets info for the date and student. The inner query could be parameterized and get its parameter values from the outer table.

sudhi said...

Hi,
I am creating report using scripted datasource.I dont know how to create dyanmic table in the BIRT report.If You have any example pls help
Thanks
Sudhi

sudhi said...

Hi,
While creating birt report ,i got error
org.eclipse.birt.report.service.api.ReportServiceException :Invalid TOC query.

Pls hepme to resove this issue
Thanks
Sudhi

Jason Weathersby said...

Sudhi,

On your first question take a look at this post:
http://www.birt-exchange.com/devshare/designing-birt-reports/317-birt-build-dynamic-table-deapi-/

This shows how to build a table with the DE API. You can also call the DE API from the beforeFactory event to modify the currently running report.

On you second question:
This sounds like the expression you have entered for the TOC (most likely in a group header) is not formatted correctly. Can you email me the report?

Jason

sudhi said...

Hi,
Thanks for your reply till date,
my new issue is while creating reporyt i want to pass one parameter to open method ,While passing i got this exception.Pls help me how to solve it

Multiple exceptions occurred.
Show Exception Stack Trace Hide Exception Stack Trace
Stack Trace:
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "favoritesclass = new Packages.com.SimpleClass(); var fmne = reportContext.getParameterValue("NewParameter1"); favorites = favoritesclass.getMusterRoll(fmne); totalrows = favorites.size(); currentrow = 0;": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:77) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:79) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:244) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:220) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:904) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:161) at org.eclipse.birt.report.engine.data.dte.QueryResultSet.(QueryResultSet.java:92) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:128) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:79) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:231) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1164) at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:155) at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81) at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:121) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:106) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage.

Jason Weathersby said...

Sudhi,

Is you Java class use a package name of

package com

If you have no package name on it just use code like
favoriteClass = new Packages.SimpleClass()

Jason

sudhi said...

Hi,

Problem is not because of parameters,With out passing parameters also it is show ing the same exception.I Think calling java method may be the problem,One Static arrayList i returned from java class to birt. In that case it is working fine .But if i put some queries inside java it is showing the problem.

Waiting for your reply
Sudhi

sudhi said...

Hi
I was working on the birt report that using scripted datasource.
From the open method i am calling One java class method.From the java class method i am creating One connection code below

Class.forName("org.gjt.mm.mysql.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","dbuser","password");

While doing like this i am getting the exception while running the report.

Is it possible to create like this ? or is there any way to proceed

Waiting for Your reply
Sudhi

Jason Weathersby said...

Sudhi,

You can try putting the jdbc driver for MySQL in the web apps/web-inf/lib folder or put it in the appservers lib folder. This may cause an issue with reports that direct connect to the database, because it expects the driver to be in the jdbc plugin/drivers directory. If this is an issue you can set the jdbc driver path in script on the beforeOpen event for the datasource with code similar to:
reportContext.getAppContext().put("OdaJDBCDriverClassPath", "C:/apps/apache-tomcat-5.5.20/webapps/WV/WEB-INF/lib");

sudhi said...

Hi,

Using connection parametrs in .rptdesign file it is working fine.Only problem is the Connection created in the java class for eecuting the query.

Sudhi

sudhi said...

Hi,
database connection problem is solved in the birt design phase.Problem was auhorization with db.

Now a new problem started.
While running in the Tomcat server i got the exception.It is given below.
Birt viewer is installed properly.
Sample reports are working properly.I think problem is only with the connection.In the birt report viewer
WebViewerExample/WEB-INF/lib i added all the connection jar files.Still it is showing the probem.



org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "favoritesclass = new Packages.com.SimpleClass(); var fm_id=params["NewParameter1"]; favorites = favoritesclass.getMusterRoll(fm_id); totalrows = favorites.size(); currentrow = 0;": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:77) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:79) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:244) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:220) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:904) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:161) at org.eclipse.birt.report.engine.data.dte.QueryResultSet(QueryResultSet.java:92) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:128) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:79) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:231) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1164) at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:155) at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81) at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:121) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:106) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2).. See next exception for more information. There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2). at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:717) at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:76) at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:71) ... 75 more Caused by: org.eclipse.birt.core.exception.CoreException: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2). at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:300) at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:261) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:713) ... 77 more org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "if(currentrow >=totalrows) { return (false); } var favrow = favorites.get(currentrow); var EMPLOYEE_ID = favrow[0]; var EMPLOYEE_NAME = favrow[1]; var FM_NAME = favrow[2]; row["EMPLOYEE_ID"] = EMPLOYEE_ID; row["EMPLOYEE_NAME"] = EMPLOYEE_NAME; row["FM_NAME"] = FM_NAME; currentrow = currentrow +1; return (true);": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleFetch(ScriptDataSetScriptExecutor.java:119) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.fetch(ScriptDataSetRuntime.java:102) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.fetch(PreparedScriptDSQuery.java:257) at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:153) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:102) at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:64) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:301) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:273) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:235) at org.eclipse.birt.data.engine.executor.cache.SmartCache.(SmartCache.java:74) at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:111) at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62) at o

sudhi said...

Hi,
I dont Know where to keep the class file while deploying in to the server

Thnks
Sudhi

Jason Weathersby said...

Sunhi,

Can you send me the report design and the simpleclass java file in email? jasonweathersby at alltel.net

Jason

sudhi said...

Hi
In the report parametr i am selecting One value and this value is getting in the open method. From the open method i am calling one method by passing the parameter From Simple.java file and getting a ArryList>from the fetch method i am displaying the Contents.
In the java class i am creating the connection.

In the design preview it is working fine.Problem is afetr deploying in tomcat it is showing exception

Where is the problem.
And i really want to know whether ia m proceedign in the right way.

Thanks
Sudheesh