BPM Console - Reporting

Project information

Overview

 

The report server is a small integration layer for the BIRT runtime. The project is used to embed BIRT reports in the jBPM GWT console, but could used with other projects as well.

 

rendering.jpg

 

Dependency on the BIRT ReportEngine

The report server is actually just a thin integration layer. It depends on the BIRT ReportEngine, which has to be installed along with the server. The report engine can either be picked from the BIRT website or retrieved as a maven artifact from the JBoss repository:

 

 <dependency>
        <groupId>org.eclipse.birt</groupId>
        <artifactId>report-engine</artifactId>
        <type>zip</type>
        <version>2.2.2</version>
 </dependency>    

 

JBoss AS integration

The main server module (report-server.war) can just be dropped into the AS deploy folder. Report templates, the ReportEngine and other resources go into the BIRT working directory (refered to as $WORK_DIR):

 

$JBOSS_HOME/server/<config>/data/birt

 

Working directory layout and contents

$WORK_DIR/
|_ ReportEngine/          (the BIRT report engine)
|_ output/                    (report results, *.html, *.pdf)
|_ *.rptdesign               (report templates)  

 

NOTE: Since jBPM 3.3.1.GA the report server, including templates and the report engine is setup through the jBPM installer. In previous version you may need to do that manually.

Rendering reports

The report server offers access to reports through HTTP. The default web context is '/report-server/' and reports can be retrieved using the '/view/<report_template_name>.rptdesign' resource, i.e:

 

 

GET http://localhost:8080/report-server/rs/view/process_activity.rptdesign

 

 

Passing report parameters

The '/view' resource accepts an arbitrary list of url encoded HTTP GET parameters, which will be passed to the BIRT runtime upon report generation:

 

 

GET /report-server/rs/view/definition_report.rptdesign&name=MySampleProcess

 

NOTE: A complete list of available resources and options can be seen at /report-server/index.html

 

Developing report templates

Report templates are developed and customized using the BIRT designer (eclipse tool). For further information see BIRT webpage.

 

Here are some quickstart links:

 

 

Customizing the default reports

The default report templates that are used with the GWT console reside with the GWT console server module. If you want to extend or customize the default reports that ship with jBPM you could as well retrieve them from the JBoss maven repository:

 

<dependency>

        <groupId>org.jbpm.jbpm3</groupId>
        <artifactId>gwt-console-server</artifactId>
        <classifier>report</classifier>
        <version>1.0.0-SNAPSHOT</version>
        <type>zip</type>
</dependency>

 

FAQ

How do I change the datasource configuration?

 

If your report design contains a JDBC data source defined with both JDBC Driver URL and JNDI name, then JNDI service will be used first and JDBC driver will be used as fallback. The username and password properties, if specified, are used in both cases. When you need to ensure that JNDI service is really used, increase logging level of BIRT engine; in case of JDBC fallback you will see JNDI lookup errors in the logs.

(Taken from BIRT FAQ)

 

How to replace the default report templates?

 

 

 

11:23amhbraunyou need to install the report server
11:23amhbraunit's a war
11:23amhbraunand put the birt runtime under server/default/data/birt
11:23amhbraunWORK_DIR/
11:23amhbraun|_ ReportEngine/          (the BIRT report engine)
11:23amhbraun|_ output/                    (report results, *.html, *.pdf)
11:23amhbraun|_ *.rptdesign              (report templates)
11:24amhbraunwhereas WORK_DIR is server/default/data/birt
11:24amhbraunonce you've created your own report templates, either stick to the naming convention or configure it in Application.html
11:25amhbraun<!-- BPM console configuration -->
11:25amhbraun  <script type="text/javascript">
11:25amhbraun      var consoleConfig = {
11:25amhbraun        consoleServerUrl: "http://localhost:8080/gwt-console-server",
11:25amhbraun        reportServerUrl: "http://localhost:8080/report-server",
11:25amhbraun        overviewReportFile:"process_activity.rptdesign",
11:25amhbraun        definitionReportFile:"definition_report.rptdesign",
11:25amhbraun        instanceReportFile:"instance_report.rptdesign"
11:25amhbraun      };
11:25amhbraun  </script>
11:25amhbraunSee? It contains the report template file names
11:26amkrisvcool, that was the info I was looking for, thx, I'll give it a try and let you know
11:26amhbraunyou can start with the templates and the report server alone
11:26amhbrauncheck the index.html it contains the resources Url's to render reports
11:27amhbrauni.e.
11:27amhbraun<tr>
11:27amhbraun  <td>GET</td>
11:27amhbraun  <td>/rs/report/view/{reportName}</td>
11:27amhbraun  <td>View a HTML report from template 'reportName' </td>
11:27amhbraun  <td>text/html</td>
11:27amhbraun</tr>
11:28amhbraunonce that is running succcessfully you can move on to the console
11:28amhbraunit basically just pulls that resources into an iframe
11:29amhbraunbased on the configured template names