This invention relates generally to the generation of reports. More particularly, this invention relates to a technique for using reports as a data source in order to create consolidated reports based upon individual reports.
There are a number of commercially available products to create reports from data stored in a database. Business Objects Americas of San Jose, Calif., sells a number of widely used report generation products, including Crystal Reports™, Crystal Analysis™, Crystal Enterprise™, and Business Objects Enterprise™.
Known report generation tools access a database each time a report needs to be generated. This can result in large numbers of database accesses that slow down the report generation process. In addition, since a single database is used, it is difficult to decentralize database activity.
Another limitation associated with existing report generation tools is that the creation of a new form of report commonly requires the rebuilding of the database schema, which can be complex and time consuming. Another problem with existing report generation tools is that they have difficulty merging data from multiple databases into a single report. This problem is especially acute in the case where the databases are from different vendors (e.g., Oracle®, IBM®, Microsoft®).
Databases have their data updated on a regular basis. While this is important from the standpoint of data consistency, it creates difficulties in obtaining snapshots of data at different points in time.
In view of the foregoing, it would be highly desirable to provide an improved technique for generating reports to overcome some of the limitations associated with existing report generation tools.
The invention includes a computer readable memory with a consolidated data mart generator to generate a consolidated data mart based upon an analysis of a repository of individual reports. A report generation tool produces a report via access to the consolidated data mart.
The invention also includes a method of forming a report by analyzing a repository of individual reports, generating a consolidated data mart based upon data collected during the analyzing, and producing a report based upon information within the consolidated data mart.
The invention includes an alternate method of forming a report wherein a report repository is defined with individual reports produced from database information. Selected data is loaded from various individual reports of the report repository to form a consolidated data mart. A report based upon information within the consolidated data mart is then produced.
The invention provides a technique that allows data from individual reports to be accessible by standard reporting tools. That is, the selection of data from individual reports to form a consolidated data mart results in a data repository that can be used by standard reporting tools. The invention facilitates the creation of reports that show trends across data found in various reports. The invention is able to access and process snapshots of data. The invention allows the merging of data from multiple databases, having either similar or disparate formats. In addition, the invention facilitates the decentralization of database computational activity.
The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
In accordance with the invention, a consolidated report generator 26 is used to produce a consolidated report 28 based upon the information contained in the previously generated reports 24A-24N. In other words, the consolidated report generator 26 does not access the data in the database 20; rather, the consolidated report generator 26 uses the data in the reports 24A-24N as a data source to produce a new consolidated report 28.
By way of example,
Returning to
Alternate techniques may be used to select consolidated report criteria. In another embodiment of the invention, a prompt is provided for a data source. For example, the data source may be a report file path or a path of a directory that contains multiple report files. Preferably, a data context for a report path can be defined to limit the amount of viewed information. For example, a special character (e.g., “?”) can be appended to a report path to limit information to selected fields of a report. Thus, for example, assuming a base report grouped by region, to see only the Quarterly sales records for the U.S. in a report, the following report path and data context can be used: c:\\Directory Name\Report Name.rpt?datacontext=/Country[US]. This example assumes a base report that is grouped by country and customer. Specifying the sum of sales in a country within the base report results in a consolidated report listing this information. One can generate trend data for all countries (e.g., datacontext=/Country[*]) or trend data for a selected country (e.g., datacontext=/Country[US]).
In one embodiment of the invention, a consolidated report of the invention is created through the following instruction sequence:
At this point, a consolidated data source is ready for use as any other data source for report creation. If the Reports node in the Field Explorer is expanded, the fields from each report specified as a data source may be displayed.
Preferably, special fields are provided to track specific information about the report fields in the data source. Example special fields include:
Returning now to
The consolidated report 28 shows trends across data found in time stamped instances of other reports. Thus, the consolidated report 28 has captured snapshots of data over an extended period of time. It should be further appreciated that the database source of the individual reports used to generate the consolidated report 28 is irrelevant. Thus, the consolidated report 28 can be created from individual reports that were derived from disparate databases. Accordingly, the invention allows the merging of data from multiple databases, having either similar or disparate formats. It can also be appreciated that the invention reduces database accesses as new reports are generated from individual reports, not database accesses. In addition, the invention facilitates the decentralization of database computational activity. For example, individual reports may be created in branch offices and then transmitted to a central office. At the central office, a consolidated report is generated based upon the received reports from the branch offices.
Returning once again to
Now that the general features of the invention have been described, attention turns to a more specific example for the purpose of more fully illustrating the features and advantages of the invention.
Using the previously described techniques, a consolidated report can be produced from the individual reports of
In accordance with an embodiment of the invention, the reports used to generate the regional data can be invoked. By way of example,
In accordance with an embodiment of the invention, further expansion or drill through to source reports can be accomplished. For example, if the link associated with the third quarter sales for France is activated, then the user receives the report of
A memory 120 is also connected to the bus 118. The memory 120 stores a set of executable programs. One executable program is a query module 122 (e.g., a report generation tool). The query module 122 utilizes standard techniques to produce a set of reports 124A-124N.
The query module 122 may access one or more databases resident on the client computer 112. However, in this example, the query module 122 accesses one or more databases resident on server computer 130. Server computer 130 includes a central processing unit 132 connected to a network connection circuit 134 via a bus 136. The network connection circuit 134 is also connected to the network transport medium 119. A set of input/output devices (not shown) is also attached to the bus 136 to allow a user to ipnut and view data. A memory 138 is also connected to the bus 136. The memory 138 stores one or more databases 140A-140N.
A consolidated report generator 150 may be executed from either the server computer 130 or the client computer 112. In this example, the client computer 112 includes a consolidated report generator 150 with executable instructions to implement the operations described herein. This results in the creation of one or more consolidated reports 152A-152N. Additional consolidated reports may be formed from the information contained in individual consolidated reports.
Different object architectures can be used to implement various consolidated report functionality. For example, consolidated reports can be programmed to run at a scheduled time. At the scheduled time, the new object inherits the superset of all instances of the parent. Security may also be implemented through various object architectures. For example, a user may be prohibited from generating a consolidated report unless the individual has access to the parent object.
The consolidated report generation techniques of the invention may employ any number of architectures.
The consolidated data mart generator 1600 may be configured to provide incremental updates to the consolidated data mart 1602. For example, the consolidated data mart generator 1600 may be configured to incrementally upload data to the consolidated data mart 1602 each time a new report instance is created.
The consolidated data mart generator 1600 may also include executable instructions to produce a semantic layer 1604, which includes metadata associated with the data in the consolidated data mart 1602.
A consolidated report generator 1626 then produces a report 1628 by accessing the consolidate data mart 1602. That is, unlike previous embodiments in which a consolidated report generator 26 accessed individual reports 24, the consolidated report generator 1626 of this embodiment accesses the consolidated data mart 1602, which stores data from individual reports 24. The consolidated report generator 1626 is not a specialized tool, rather it may be a standard report generator. The term consolidated report generator 1626 is used to denote that the resultant report includes data that has been consolidated from various report instances.
The consolidated report generator 1626 may also access the semantic layer 1604 in the process of generating a consolidated report 1628. The consolidated report 1628 typically reflects the differences in data between different report instances.
In one embodiment, the report instances 24 contain metadata for the report and historical data content, which is preserved as a snapshot of how a business is performing. For example, with key financial data, the information in a set of report instances can satisfy the purpose of establishing an audit trail.
The history of report executions captures key information requirements for operational metrics of a business. Because standard corporate reports generally access transactional systems directly, and because these reports are tied closely to people's job responsibilities, these reports contain the numbers and data with which everyone is familiar. Perhaps more significantly, then, data in report instances can be used to establish simple, personalized, trending and correlation analyses for a wide range of users who need to read past reports. Currently, one must manually copy data into spreadsheets in order to examine trends or to perform a tracking analysis. The consolidated data mart 1602 obviates this manual operation. The consolidated data mart 1602 formats data from individual report instances in such a manner that the data can be consumed by other applications or tools that could not have otherwise utilized the data from individual report instances as a data source.
It is theoretically possible to expose report instances directly as a database source (e.g., an OLEDB data source) in order to extract historical data. However, this approach would be severely restricted by performance and scalability issues that could not be overcome with currently available technologies. The embodiment of
The current embodiment allows report instances to be efficiently targeted as a data source for data mart construction. This embodiment is scalable and has high performance. This embodiment of the invention also provides for incremental loading. Users can schedule reports and pick up the delta (i.e., the changes) between instances to execute trending and correlation analyses on scheduled report instances. In one embodiment, the system maintains metadata to identify where the report and report data originates.
The consolidated data mart generator may be configured in any number of ways. The following description relates to one embodiment of the consolidated data mart generator 1600 that has been commercialized by Business Objects Americas of San Jose, Calif. The consolidated data mart generator 1600 may be implemented with the Crystal Data Adapter™, which is a plug-in to the Business Objects Data Integrator Adapter™ software developer kit sold by Business Objects Americas. The Crystal Data Adapter browses a report repository (e.g., a Crystal Enterprise system) and selects reports for which grouping schema can be imported. Internally, the Crystal Data Adapter uses the Java Crystal Enterprise™, Java Business Objects Enterprise™ and/or Java Enterprise Report Object Model™ software developer kits, all sold by Business Objects Americas, to find available reports and to create metadata on their grouping structure.
Executable instructions associated with the consolidated data mart generator 1600 query the Data Integrator repository to obtain a list of available Crystal Data Adapter data stores (and the imported report metadata). A list of available target data stores (e.g., data marts) to which summarized instance data can be written is then queried. Report instance data is then read and written (according to the grouping schema) to a specified data mart.
The consolidated data mart generator 1600 may also be configured to produce a semantic layer 1604. For example, the consolidated data mart generator 1600 may be configured to generate a Business Objects Universe on top of the target data mart. This may be implemented using the Business Objects Designer software developer kit. The universe is aware of the aggregation structure of the report summary fields in the data mart. The universe also contains dynamically generated hyperlinks, which link each summary value back to the original report instance (at the exact location in the report from which the summary value was extracted). These hyperlinks are also aggregate aware and dynamically link to the summary level being viewed in the report.
The operation of the consolidated data mart generator 1600 is more fully appreciated with the following example.
A consolidated data mart 1602 may be formed through the following operations. A consolidated data mart generator 1600 may be invoked, as shown in
As previously discussed, the consolidated data generator 1600 may be configured to produce a semantic layer 1604.
A consolidated report generator 1626 may then be invoked to create reports from the consolidated data mart.
An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
This application is a continuation-in-part of pending U.S. Ser. No. 10/328,744, filed Dec. 23, 2002, entitled “Apparatus and Method for Creating New Reports from Discrete Reports”.
Number | Date | Country | |
---|---|---|---|
Parent | 10328744 | Dec 2002 | US |
Child | 11182486 | Jul 2005 | US |