Abstract:
A method and apparatus for generating and distributing computer output reports which does not require programing, does not require familiarity with database query languages, and does not require access to a database. Unattribuzed reports and attributed reports are stored in a report warehouse. Attributed reports are generated from unattributed reports and attributed reports. Exceptions in reports stored in the report warehouse are monitored and selected users are notified. The present invention is particularly suited for application in a distributed networked computer environment, for example, such as found in many businesses.

Description:
This application claims the benefit of U.S. provisional patent application No. 60/102,451, entitled System And Methods For Generating And Distributing Output Reports, filed on Sep. 30, 1998. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention relates to methods and apparatus for generating and distributing reports and to improvements therein. 
     Computer reports are used to organize and display data for use by humans. Examples of computer reports are reports on sales, production, accounts receivable, accounts payable, etc. Such reports may be displayed on a computer monitor or printed out on paper and may generated at periodic intervals (e.g., daily, monthly, or yearly). 
     Typically, computer database management systems are employed to logically organize data stored in databases. Relational database management systems can also be used to store data in tables having columns and rows corresponding to data attributes. Examples of data attributes could include sales region, sales volume, products sold, etc. 
     Software applications are often used to automatically generate computer output reports from databases on a periodic basis. Such software applications are generally expensive to develop. Furthermore, routine maintenance (to respond to changes in organizational structure, changes in data attributes, etc.) can also be expensive and time consuming. Even if the software applications are maintained in a timely fashion, end users have no way to easily tailor the computer output reports to suit their own specific requirements. 
     At present, in order to generate a computer report based on the data stored in the database, the database user must be at least familiar with that particular database&#39;s query language. Needless to say, most users of computer reports are not familiar with any database&#39;s query language, much less all the query languages of the plurality of databases used in their workplace. Attempts have been made to providing interfaces for formulating relational database queries and producing computer reports. See, for example, Kaplan et al., U.S. Pat. No. 5,539,903, entitled “Method And Apparatus For Producing A Report From A Query To A Database Based On A Report Format,” which is incorporated herein by reference. Such methods, however, require the availability of the database from which the computer report was originally generated. 
     A need therefore exists for a method and apparatus for generating and distributing computer output reports which does not require programing, does not require familiarity with database query languages, and does not require access to a database. 
     In view of the foregoing, it is an object of this invention to provide a method and apparatus for generating and distributing computer output reports which does not require programing, does not require familiarity with database query languages, and does not require access to a database. 
     SUMMARY OF THE INVENTION 
     These and other objects of the invention are accomplished in accordance with the principles of the invention by providing a method and apparatus for generating and distributing computer output reports which does not require programing, does not require familiarity with database query languages, and does not require access to a database. Unattributed reports and attributed reports are stored in a report warehouse. 
     Attributed reports are generated from unattributed reports and attributed reports. Exceptions in reports stored in the report warehouse are monitored and selected users are notified. As used herein, an unattributed report comprises report data and an attributed report comprises report data and report structure definitions. 
     The present invention is particularly suited for application in a distributed networked computer environment, for example, such as found in many businesses. In such an environment it is often desirable that databases are controlled and managed centrally. Furthermore, the number of databases in use by a particular business may be large and their query languages not easily learned. Moreover, a particular user in need of stored computer output report information may not have access to the relevant database or databases. 
     Unlike many databases, computer output reports often employ headings which use industry- or corporation-specific terminology, making them readily understood by users. Furthermore, computer output reports are generated at periodic intervals and represent stored “snapshots” of particular databases at particular points in time. Finally, the form of many computer output reports (e.g., certain types of accounting output reports) is determined by government regulation or industry convention. 
     Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 Is an overview of an apparatus for generating and distributing computer output reports. 
     FIG. 2 shows portions of the apparatus of FIG.  1  and the user terminal in greater detail. 
     FIG. 3 shows a data structure for a typical output report. 
     FIG. 4 shows a preferred data structure for use storing the definitions of attributed reports. 
     FIG. 5 is a flowchart illustrating the process of generating attributed reports from unattributed reports and attributed reports. 
     FIG. 6 shows an example of an existing attributed report. 
     FIG. 7 shown examples of external definitions used in generating a new attributed report. 
     FIG. 8 shows an example of a new attributed report generated from the existing report of FIG. 6 based on the external definitions of FIG.  7 . 
     FIG. 9 shows another example of existing attributed reports. 
     FIG. 10 shows external definitions used to automatically generate new attributed reports. 
     FIG. 11 shows newly generated attributed reports generated from the existing reports of FIG. 9 based on the external definitions of FIG.  10 . 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to the figures, a method and apparatus for generating and distributing computer output reports which does not require programing, does not require familiarity with database query languages, and does not require access to a database is provided. 
     As shown in FIG. 1, unattributed reports and attributed reports are stored in report warehouse  20 . Report warehouse  20  may be resident on a mainframe computer, for example. Report warehouse  20  is a centralized database which houses a collection of reports for various business groups or projects, preferably stored in chronological order. Report warehouse  20  preferably includes main processor  22 . Report combination and division gives users the ability to combine and divide reports according to their needs. New reports can also be generated according to external definitions. The system preferably also includes means for generating a table of contents based on at least one attributed report. Exception discovery requires monitoring the reports stored in report warehouse  20  and occurs when pre-set conditions set forth in the exception definition (e.g., a greater than 10% drop in sales in a particular business unit, where the sales results are in a specific output report) are found. Exceptions in reports stored in the report warehouse are monitored and selected users are notified, according to exception definitions. 
     Report warehouse  20  also includes report spool  24  and repository  26 . Report spool  24  is used for spooling report data for unattributed reports and attributed reports. Repository  26  is used for storing external definitions, exception definitions, and report structure definitions. 
     In addition, repository  26  preferably includes definitions storage  28  and schedules storage  29 . The attributes which make up an attributed report are stored in definitions storage  28 . Schedules for delivery of selected reports to selected user are stored in schedules storage  29 . 
     Unattributed reports are typically generated by report generating systems (for example, general purpose computers running application software) and stored in spool systems. Two typical spool systems are shown in FIG. 1. A first spool system  80  (for example, A-Spool, a commercially available spool software package) preferably includes mall selection unit  82 , spool  84 , and master  86 . Similarly, a second spool system  90  (for example, OS-Spool, a basic operation system spool) preferably includes mail selection unit  92 , spool  94 , and master  96 . Masters  86  and  96  provide instructions as to which reports should be sent by mail selection units  82  and  92  to main processor  22 . Mail selection units  82  and  92  monitor reports stored in spools  84  and  94 , respectively. 
     Report mart  30  is a localized database which houses a collection of reports for a particular business group or a particular project team. Report mart  30  preferably includes report spool  34 , and repository  36 . Repository  36  preferably includes definitions storage  38  and schedules storage  39 . 
     The system preferably includes archive  40  for backing up as well as archiving reports stored in report warehouse  20 . Archive  40  preferably includes archive processor  42  for interfacing with report spool  24  and storage  44  for storing reports sent from report spool  24  to archive processor  42 . 
     Users are preferably provided with an interface, master and repository maintenance means  46 , for allowing the user to (1) control the process of converting unattributed to attributed reports, (2) access masters  86  and  96  to specify which reports should be sent by mail selection units  82  and  92  to main processor  22 , and (3) specify the definitions and schedules stored in repository  26 . 
     Attributed reports are generated from unattributed reports and attributed reports. As used herein, an unattributed report comprises only report data while an attributed report comprises report data as well as report structure definitions (i.e., information about the boundaries and position about the individual data items included in the report). In particular, computer output reports are generated by databases for display or printing in unattributed report form (i.e., as a page of alpha-numeric symbols which lacks report structure definitions). 
     Report warehouse  20  includes means for generating attributed reports from unattributed reports and attributed reports by identifying the report structure definitions for an unattributed report. The means for generating preferably includes a first converter for converting unattributed reports to attributed reports and a second converter for converting a first attributed report to a second attributed report. The functions of the first converter and the second converter may, for example, be incorporated in software resident on main processor  22 . The process of generating attributed reports from unattributed reports and attributed reports will be discussed in reference to FIG.  5 . 
     The system preferably also includes means for pushing (for example, push search  50  and push search  52 , as shown in FIG. 1) selected reports from the report warehouse to selected users based on previously established criteria. 
     Individual users are provided with a terminal  60  which includes a monitor  62 , a report PC  63  (for providing functionality such as localized report storage for individual users), and means for exception notification  64 , means for report searching  66 , means for report editing  68 , means for report saving  70 , and means for report circulation  72 . 
     Terminal  60  is shown in greater detail in FIG.  2 . As shown in FIG. 2, terminal  60  also includes means for report PC search  100 , means for exception search  102 , means for table of contents search  104 , means for report name plus value search  106  and means for report name search  108 . Means for report PC search  100 , means for exception search  102 , means for table of contents search  104 , means for report name plus value search  106  and means for report name search  108  are coupled to report viewing interface  110  which is coupled to drill-down drill-up means  112 . Report viewing interface  110  allows the user to view the search results on monitor  62  while either initiating a new search by inputting new search parameters or drilling-up or drilling-down through the stored reports to the desired output report. 
     The system preferably also includes pull means  54  for pulling reports which preferably comprises means to search report warehouse  20  or report mart  30  for unattributed reports and attributed reports, thereby generating search results and means to download the report data corresponding to the search results to terminal  60 . In addition, pull means  54  may include means to display the search results. 
     The system preferably also includes drill-down and drill up means  112 . Drilling-down allows the user to move from higher-level attributed reports which are summaries and combinations of other attributed reports to more detailed, lower-level attributed reports until the original unattributed report(s) is reached. Drilling-up through attributed reports allows the user to move from more detailed, lower-level attributed (or unattributed) reports to higher level attributed reports. 
     The structure of a typical report (for example report  310 ) is shown in FIG.  3 . 
     A preferred data structure for use in storing the definitions of attributed reports in repository  26  is shown in FIG. 4. A report ID is stored at a first level. Report information, data item information, distribution recipient information, header information, and footer information are stored at a second level. 
     As shown in FIG. 5, the process of generating attributed reports from unattributed reports begins with storing an unattributed report in report warehouse  20  according to chronological order, as shown in step  500 . Then, the attributes (i.e., the boundaries and positions of individual report data items) of the report are determined, as shown in step  510 . The determination of attributes of step  510  is preferably done automatically, however, depending on the amenability of the original unattributed report to automatic determination, some or all of the attributes may need to be determined manually. These attributes, which define an attributed report, are then stored in definitions storage  28 , as shown in step  525 . Steps  500 ,  510 , and  525  are preferably performed by main processor  22  when a report is sent from mail selection unit  82  or  92  to main processor  22 . 
     Existing attributed reports can be joined or divided, as shown in steps  530  and  540 , by selecting data items from existing attributed reports and storing the attributes of the new attributed report in definitions storage  28 . The attributes preferably also include report relation definitions which facilitate drill-down and drill-up. Steps  530  and  540  are preferably performed by any of report warehouse  20 , report mart  30  or report PC  63 . 
     The system preferably also includes means for generating a new attributed report from one or more attributed reports stored in report warehouse  28  based on external definitions stored in definitions storage  28 . For example, a business strategist might wish to focus on the sales results for a particular region at monthly intervals for a period of several years but attributed reports stored in report warehouse  28  are all maintained on a daily basis. In such case, the system generates a new attributed report with monthly sales results for the selected region over the selected period of years based on attributed reports stored in report warehouse  28  using the external definitions stored in definitions storage  28 . 
     Exception monitoring can be used along with report generation based on external definitions to generate a report with specific data fields drawn from a plurality of reports when a particular exception is detected. The newly generated report can then be sent to selected users. 
     An example of an existing attributed report  600  (specifically a table of sales totals for cities) is shown in FIG.  6 . As shown with reference to FIG. 7, the external definitions provide the mapping such that existing attributed report  600  can be used to automatically generate a new attributed report  800  (as shown in FIG. 8) with sales totals based on a state-by-state basis (rather than on a city-by-city basis). 
     In addition, sub-totals and totals for the newly generated attributed report can be automatically generated by taking into account data field boundaries (usually control breaks). As shown in FIG. 8, the total for the attributed report  800  is  505 . 
     Another example of existing attributed reports  901 - 912  (specifically a table of monthly sales totals for the months January to December) is shown in FIG.  9 . As shown with reference to FIG. 10, the external definitions provide the mapping such that existing attributed reports  901 - 912  can be used to automatically generate new attributed reports  1101 - 1104  (as shown in FIG. 11) with sales totals based on a quarter-by-quarter basis (rather than on a month-by-month basis). 
     It will be understood that the foregoing is only illustrative of the principles of this invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. For example, the various data structures mentioned herein are preferred, but other data structures can be used if desired.