These and other features of the invention will become more apparent from the following description in which reference is made to the appended drawings wherein:
Elements that are traditionally considered part of a query specification are present in the layout specification 104 (e.g., sorting, grouping, properties). Advantageously, this avoids having redundant specification in both the layout 104 and query portions of the specification, and provides the server that must render the described reports the flexibility to choose the optimal query that can be executed to render the requested data as desired.
The data selection specification 102 allows for the specification of the data desired in a manner that leverages but does not replicate the information contained in the underlying model. Advantageously, this approach provides for a high level specification that is capable of complex data request.
Traditionally, this “business intelligence” has been locked up in the report authoring tools thereby requiring the tools in order to build reports. Since the specification only captures what the author has provided, only the server that consumes this specification can now apply the business intelligence. Therefore, this business intelligence is pushed down into the servers so that anyone building a report specification 100 either through the provided authoring tools or by manually building the report specification can take advantage of a high level specification. The layout specification 102 is designed to define how the data is to be “structured” and “rendered”, not how to obtain the data. In other words, the “intent” of the report is captured.
The charting specification 108 allows for a level of flexibility in choosing how data is charted. The reporting model 100 allows authors to place aggregates and measures in multiple locations in the charting specification 108. For example, not only can revenue be placed in the pie slices of a chart, it can also be placed in the chart title or legend. By virtue of the report specification 100 defined in the present invention, the server is able to formulate an advanced query that provides the results the author is expecting.
Another example of this relationship between layout and query in charts is the concept of union. Normally it would be impossible or very difficult to show a chart that shows revenue for products and regions (unrelated data) on the same axis. In this reporting model 100, the author simply has to place references to products and regions beside each other and the server will formulate the correct query. This is in essence showing data from two charts in one.
The charting specification 108 also facilitates simple authoring of charts. Rather than having to understand the distinction of categories and series, the author can specify the chart layout in simple English terms. For example, the author specifies which data will be represented by individual pies and which data will be represented by individual pie slices in a pie chart. Advantageously, this is very clear to the author. The server takes this simple layout specification and formulates the correct query and rendering to provide the author the desired chart.
Advantageously, the report model specification 100 does not replicate information that is available in the underlying metadata model, thereby fully leveraging it. The report model specification 100 captures only the information that was provided by the report author and provides a conceptual model for a report that can be used as the concepts exposed in a report authoring tool. Advantageously, the report model specification 100 also requires/allows for the applying of “business intelligence” in the consumption of the report specification as opposed to requiring it for the producing of the report specification.
The following is an example of a report specification 122 that is sed to generate the output 180 shown in
- <report xmlns=“http://developer.cognos.com/schemas/report/2.0/”
- <layouts>
The following is an example of a report model definition 100:
The following is an example of a query set definition 126:
The following is an example of a layout definition 104:
The following is an example of a chart definition 108:
The following is an example of a prompt definition 110:
The following is an example of a QRD 128:
The following are examples of other definitions referred to by the definitions set out above:
The system and methods of the present invention may be implemented by any hardware, software or a combination of hardware and software having the above described functions. The software code, either in its entirety or a part thereof, may be stored in a computer readable memory. Further, a computer data signal representing the software code which may be embedded in a carrier wave may be transmitted via a communication network. Such a computer readable memory and a computer data signal and its carrier are also within the scope of the present invention, as well as the hardware, software and the combination thereof.
The present invention has been described with regard to one or more embodiments. However, it will be apparent to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as defined in the claims.