04 April 2016

1. Report Generator

The Report Generator Component produces reports over business-objects and connections from ENOVIA into different formats, where the most commonly used formats are PDF and HTML.

The main features of the Report Generator Component are:

  • Queuing mechanism, i.e. controlling the number of concurrent reports being created.

  • Possibility to distribute the work for creating reports into other processes, by using so called “Report Agents”.

  • A report is defined / configured via XML files OR business objects (report definition objects).

  • Report definition objects can be configured to be available only for certain users, e.g. by using filter expressions.

  • The report can be generated on-demand, sent by mail, uploaded to a FTP site or checked in to a business object in ENOVIA, or a combination of the methods. This is called “output handler”.

  • Possibility to post-process the report after it has been created. For example, stamp the PDF with some text, or ZIP the report before it is delivered.

  • Separation of data extraction and presentation, e.g. same stylesheet used for design but different system-tables depending on what to view.

  • Highly customizable. The plug-in architecture of the report generator allows a high degree of customization, such as custom output handlers or post processors.

1.1. Definitions

Definition Description

Report Definition

The "configuration" object (XML file OR business object) that defines how a report is generated. Defines for example which output format, stylesheet and system table to use for a particular report (among others).

Post Processor

A post processor can be used to modify the generated report, for example perform PDF stamp.

Output Handler

An output handler is responsible for delivering the report to a certain destination. For example: by mail, to FTP, check-in to ENOVIA etc.

XSL

XSL is a W3C standard concerned with publishing XML documents. It consists of two parts: XSLT and XSLFO. The acronym expands to eXtensible Stylesheet Language.

XSLT

XSLT describes the transformation of arbitrary XML input into other XML (like XSL-FO), HTML or plain text. The "T" comes from Transformation. For historical reasons, a transformation is often also called a "style sheet".

XSL-FO

XSLFO is an XML vocabulary that is used to specify pagination and other styling for page layout output. The acronym "FO" stands for Formatting Objects. XSLFO can be used in conjunction with XSLT to convert from any XML format into a paginated layout ready for printing or displaying.

FOP

Formatting Objects Processor. It can be used to render an XML file containing XSL formatting objects (XSL-FO) into a page layout. The main target is PDF but other rendering targets may be used (DOCX, RTF, Open Office, Post Script).

Xalan

Xalan-Java is an XSLT processor for transforming XML documents into HTML, text, or other XML document types. http://xml.apache.org/xalan-j/index.html

Xerces

XML Parser from Apache. http://xml.apache.org/xerces2-j/index.html

1.2. Overview

The report definition object defines the extraction criteria. Depending on the type of definition object being used, this is done differently. It could for example be to define the expansion settings, defining an inquiry or setting up a more advanced report that does a combination of different methods.

A table (system table or XML-table) is used to define which attributes and other properties that are needed from the objects and/or connections. After the table has been evaluated over the extracted data, an XML document is created that represents the raw data.

The raw XML data is converted into a different format by using a stylesheet. Most commonly, the data is converted into an XML format called XSL-FO, which is used for producing for example PDF, DOCX or RTF reports. However, it is also common that the raw XML data is converted into HTML.

After the report has been created, any post processors being configured will be executed. The last step is to process the output handlers.

image
Figure 1. Report creation process

1.2.1. Pre Processing

Sometimes it is needed to get some input from the user before the report is being created. This is solved by using a custom pre-process page.

Some examples of what a pre process page allows the user to do:

  • Give input criteria to the query, e.g. affect the data included in the report

  • Define which columns in a table that should be included

  • Define which sections that should be included in a report.

1.2.2. XML-FO Processor

Internally, the Report Generator uses a component from the Apache Software Foundation called FOP for converting XML-FO data into for example PDF. The report generator has two versions of the Apache FOP software available, 0.20.5 and 1.1. The default version being used is 1.1 (this has been changed as of TVC 2010.3.0). See this chapter for information how to change the version used.

As of TVC 2013.1.0, the Report Generator contains another XML-FO converter that can produce DOCX, RTF, ODT (Open Office) and Wordprocessing ML output. This XML-FO converter is called XFC.