Implementation Guide for Oracle Self-Service E-Billing > Using the Reporting Engine >

Reporting Engine Features


The Reporting Engine is used for much more than just reporting. The Reporting Engine can present any data you can retrieve from any data sources, such as RDBMS or CSV files.

Possible use cases supported by the Reporting Engine include:

  • Viewing statements and invoices
  • Analytic reports, such as the 10 most expensive calls
  • Cost center reports (hierarchy report), such as cost summary by cost centers
  • Reports, such as most frequent users or logging analysis
  • Address book
  • Email content composition
  • AR file generation

The Reporting Engine offers great tools to help you implement these use cases. It uses XML to describe how you want to present a report. Then the Reporting Engine does the rest of the work for you, including retrieving data from data source, formatting, and then presenting the data to the end user through Velocity templates.

The Reporting Engine is designed to do the following:

  • Use XML Files: Create an XML file to describe the report you want to create. The Reporting Engine automatically generates that report for you, in variety of formats, such as HTML or CVS.
  • Have an extendable, customizable UI: You can extend the Reporting Engine to support any UI customization. The Reporting Engine uses Velocity templates, which is a powerful reporting tool based on Model-View-Controller (MVC) technology.
  • Be maintainable: The Reporting Engine is MVC-based and offers the best separation of presentation logic and business logic, which makes it maintainable.

The following features are offered by the Reporting Engine:

  • Multiple data sources. The Reporting Engine connects to multiple data sources, including SQL data source, object data source, and DSV data source.
  • Prompts. Prompts allow you to select desired data from data source.
  • Interactive sorting. Sorting can be case sensitive or insensitive.
  • Interactive grouping. Data is grouped by a particular column's values.
  • Calculator operations. Summary, Boolean, minimal, average and count operations are supported.
  • Charting. This feature supports bar, stack bar charts, line, and pie charts.
  • Template. Template-based presentation for both Web-based and non-Web based applications.
  • Formatting. Support is provided for locale based format for numeric values and dates.
  • Printer friendly view. This feature allows you to generate a printer friendly view for printing.
  • CSV download. CSV download lets you download the report in CSV format.
  • XML download. XML download lets you download the report in XML format.
  • PDF download. PDF download lets you download the report in PDF format. PDF format is not generated automatically for all the reports. You must create an RTF template file for particular reports to generate in PDF format.
  • Paging. Pages through a large set of data.
  • Custom report. Custom reports allow users to create their own reports and save them for later retrieval.
  • Internationalization. Standard Java resource bundle based internationalization.
  • Drilldown and Breadcrumb links. The Report engine offers a way to drill down to different reports and drill back through breadcrumb links.
  • Seamless integration with Struts and Tiles. The Reporting Engine is not tied to a particular presentation framework, but offers excellent support for Struts and Tiles.
  • Batch report. When it takes a long time to generate a report online, you can use the batch report feature to send a request which will be processed offline.
  • Unlimited Paging. If the data source has too many rows and if there is a performance issue to retrieve all the rows, the Reporting Engine can retrieve them in batches. The paging though these batches is seamless and retrieving result set in batches is invisible to the end user.

If you are working on the UI, consider using the Reporting Engine whenever you want to present a tabular table with sorting and paging functionality. For a non-tabular based UI, use JSP files.

The Reporting Engine is also useful for generating dynamic text files, such as AR files or email content.

It is recommended that you use JSP for most parts and only use Velocity templates for reporting-related UIs.

The Reporting Engine uses Velocity instead of JSP because:

  • Velocity offers a better MVC module, which keeps most of the business logic in the core Reporting Engine APIs.
  • The Reporting Engine is meant to be used by both front end and back end applications. For back end applications, JSP is not available.
  • The views (templates) must be publishable and versioned. This is important if you want to use the Reporting Engine to present bills. Note that there is no easy way to publish JSP pages.

It is not recommended to download a newer version of Velocity and replace the one in the EAR file. The new Velocity version has not been tested with Oracle Self-Service E-Billling. Also, the default velocity.properties file has been changed for Oracle Self-Service E-Billling. These changes include: the velocityCount starts from 0 instead of the default 1, and the templates can be loaded as file and also as class.

You cannot define your own data source. One way to get around this is to retrieve your data as a list of objects and then use the Object Datasource feature to present it through the Reporting Engine.

You cannot extend report XML to add your own custom tags.

Implementation Guide for Oracle Self-Service E-Billing Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices.