12.2 Overview of Output Processing

Report output is controlled by the DESTYPE value that you specify at runtime, which, in turn, is determined by the destination output types you have registered in your server configuration file (rwserver.conf) using the destination element. For more information, see Section A.5.31, "DESTYPE" and Section 7.2.1.6, "destination".

You need not register the following default destinations:

  • Cache

  • E-mail

  • Printer

  • File

  • FTP

  • WebDAV

You may need to register the following default destination:

  • Oracle Portal: The entry for this destination is created by default in the server configuration file, but it is commented out. To start using this destination, you must uncomment the destination entry, and also provide appropriate property values (for example, the value for the portalUserid property).

You must register any new destination types you create through the Oracle Reports Services Destinations API.

Note:

For more information about the destination API, refer to Oracle Reports Java API Reference on the Oracle Technology Network (OTN) at (http://www.oracle.com/technetwork/middleware/reports/overview/index.html).

Configuring destinations is discussed in detail in Chapter 12, "Configuring Destinations for Oracle Reports Services".

You can also define custom output types, such as fax, Oracle's Internet File System (iFS), or any new destination type you define using the Oracle Reports Services Destinations API. This API enables you to define new destination types and build handlers to usher your reports to custom destinations.

Note:

For more information about the available APIs for Oracle Reports, refer to Oracle Reports Java API Reference on the Oracle Technology Network (OTN) at (http://www.oracle.com/technetwork/middleware/reports/overview/index.html).

The Oracle Reports Services architecture standardizes the way output is generated and delivered. It takes responsibility for delivering report output to the appropriate destination (through the Reports Server), yet generates output independent of its destination (through the Oracle Reports engine). This provides a significant improvement in efficiency by allowing one run of a report to be used in a number of different ways. It also opens up the output processing architecture to allow for any number of destination types.

In the past, the Reports Runtime engine was totally responsible for delivering the output. Consequently, it had to know how to communicate with output destinations. This resulted in a tight coupling between the engine and the supported destinations.

Oracle Reports Services eliminates this tight coupling and its attendant restrictions. The runtime engine now treats all destinations alike. It doesn't know the destination type for which the output is being produced. The server hands output off to destination handlers that prepare the material for delivery to their associated destination types. You can use predefined destination types (with predefined handlers) or create a handler for a custom destination type you intend to support. Almost any type of destination can be plugged into Oracle Reports.

Figure 12-1 illustrates the main components of the Oracle Reports Services output processing architecture.

Figure 12-1 Main components of destination/distribution architecture

Description of Figure 12-1 follows
Description of "Figure 12-1 Main components of destination/distribution architecture"

Requests flow through the output processing architecture in the following sequence:

  1. The user submits a request from a client or browser to the Reports Server.

  2. The server passes it along to the runtime engine.

  3. The runtime engine creates/processes the destination objects (which include file lists for specific destinations as well as any properties related to those destinations) and the report output; the runtime engine sends the destination objects to the Reports Server and the report output to cache.

  4. The Reports Server sends the destination objects to the Reports Server's destination component.

  5. The destination component of the Reports Server fetches the report output from cache.

  6. The Reports Server destination component sends the report and the destination objects (which specify how the destination device should handle the output) to the appropriate destination handler.