Conventional enterprise software systems receive, generate and store data related to many aspects of a business enterprise. In some implementations, this data may relate to marketing, sales, customer relations, supplier relations, inventory, human resources, and/or finances. Reporting tools are commonly used to collect and present enterprise data in a coherent manner. Reporting tools may therefore facilitate and improve business enterprise decision-making.
Reporting tools typically allow a user to create a report specification. A report specification defines the layout of report elements (e.g., sections, tables, columns, rows, header, footer, etc.) and the data which is to populate the report elements. When a report is requested, the tools generate a populated report based on stored enterprise data and the report specification. If the relevant data changes, a subsequently-generated report will include the changed data.
For most users, the reporting interface is the primary, if not exclusive, interface to the stored enterprise data. It would be beneficial to leverage this well-known and well-used reporting metaphor to provide mechanisms for modifying the stored enterprise data.
The following description is provided to enable any person in the art to make and use the described embodiments and sets forth the best mode contemplated for carrying out some embodiments. Various modifications, however, will remain readily apparent to those in the art.
Report 100 includes sections 110 and 120. Section 110 includes cell 115 associated with a “Year” dimension, and section 120 includes cell 125 associated with a “City” dimension. Section 120 is nested within section 110. Accordingly, the “Year” dimension is the context of cell 125.
Section 120 includes table 130, which in turn includes column 132 and column 134. Table 130 is nested within section 120 and within section 110. Accordingly, the context of table 130 (and of columns 132 and 134) includes the “Year” dimension of section 110 and the “City” dimension of section 120.
Each illustrated element of report template 100 can generally be referred to as a contextual report element because the data which is to populate each element is dependent upon the context(s) associated with each element. Some embodiments may employ other report elements that are or will be known in the art. Contextual report elements are not limited to the types and arrangements shown in
Report template 100 also includes submission controls 117, 127 and 137. Submission control 117 is associated with the context of section 110, submission control 127 is associated with the context of section 120, and submission control 137 is associated with the context of table 130. According to some embodiments, each of submission controls 117, 127 and 137 is associated with a service. The service may be provided by any service-oriented architecture to allow writing to or otherwise updating of a data structure.
Input parameters Sales, City and Year of the service may be associated, respectively, with column 132, cell 125, and cell 115. However, due to the different contexts in which submission controls 117, 127 and 137 reside, data passed to the service in response to selection of one of submission controls 117, 127 and 137 will be different from data passed to the service in response to selection of another one of submission controls 117, 127 and 137.
Cells 225A and 225B are populated with data that is associated with a “City” dimension and with the year 2008 of cell 215. Similarly, the columns of tables 230A and 230B are populated with data associated with the cities specified in respective cells 225A and 225B, and with the year 2008 of cell 215. Specifically, table 230A includes Sales, Revenue data for New York in 2008, and table 230B includes Sales, Revenue data for Chicago in 2008. The data may be populated upon generation of report 200 and/or by a user who has input the data into one or more fields.
Report 210 includes submission controls 217, 227A, 227B, 237A1, 237A2, 237B1 and 237B2 associated with similarly-numbered ones of submission controls 117, 127 and 137. As described above, each submission control is associated with a same service and various report elements of report 210 are associated with respective input parameters (i.e., Sales, City and Year) of the service. As also described above, the specific data passed to the service upon selection of one of submission controls 217, 227A, 227B, 237A1, 237A2, 237B1 and 237B2 depends on the context in which the selected control resides.
For example, selection of any one of submission controls 237A1, 237A2, 237B1 and 237B2 invokes the associated service and passes the associated year (2008), the one associated city (New York or Chicago) and the one associated salesperson (Bill, John, Jill or Joe) as input parameters to the service. In contrast, selection of submission controls 227A invokes the service with the associated year (2008), the associated city (New York) and all associated sales (Bill, John) as input parameters. Lastly, selection of submission control 217 invokes the associated service and passes the associated year (2008), all cities (New York and Chicago) and all sales per city as input parameters to the service. Of course, it is assumed that the service is capable of accepting simple or list parameters as described in the above example.
Initially, at 305, a cell of a report section is selected. The cell is associated with a data dimension and with a context of the report section. Some embodiments of 305 may comprise selecting any contextual report element (e.g., a row, a column, a table, etc.) consisting of one or more cells.
Implementation details of 305 according to some specific embodiments are described below. With reference to
Next, at 310, the selected cell is associated with an input parameter of a software service. Such a software service may include a Web Service, an Application Programming Interface, a Software Development Kit, or any other type of callable software service that is or becomes known. By associating the selected cell with the input parameter, the reporting metaphor may be expanded to provide input to a back-end system.
BI tier 410 includes user interface (UI) portal 411 and BI content beans 412. Repository 413 stores objects (e.g., dimensions, measures, details) used by BI tier 410, report specifications, and report-specific named service instances as will be described below. Web Services 414 include write actions for writing to data sources 430 and a catalog specifying input parameters and other information regarding the write actions. Services used on conjunction with some embodiments are not limited to write actions or to Web services. For example, a service may comprise a call for updating ERP or other data source. BI tier 410 also includes report engines 415 to generate reports based on a corresponding report specification stored in repository 413 and on data of data sources 430 specified by the report specification.
Data sources 430 may comprise one or more of relational database, enterprise applications, legacy applications, Online Analytical Processing (OLAP) sources and other data sources. In this regard, BI tier 410 also includes any necessary connectors for interacting with one or more of data sources 430.
BI tier 410 may provide report designer 420 with functionality to generate reports according to some embodiments. Such reports include at least one contextual report element that is mapped to an input parameter of a software service. Report designer 420 may access UI portal 411, BI content beans 412, and the catalog of Web Services 414 to create and modify report specifications according to some embodiments.
Report designer 420 may comprise any suitable device, such as a desktop computer, a laptop computer, a personal digital assistant, a tablet PC, and a smartphone. Report designer 420 may execute program code of a rich client application, an applet in a Web browser, or any other application to perform the processes attributed thereto herein.
Browsing client 440 may also comprise any suitable device executing program code of a rich client application, an applet in a Web browser, or any other application. Browsing client 440 may access UI portal 411 and BI content beans 412 to view and interact with reports according to some embodiments. Once browsing client 440 requests a report, report engines 415 generate the report based on a corresponding report specification stored in repository 413 and on data of data sources 430 specified by the report specification.
Architecture 400 may include other unshown components to provide functionality other than that described herein. For example, BI tier 410 may include components to provide security, session management, and report delivery services (e.g., scheduling, publishing, dashboards).
User interface 600 includes window 620 presenting available reports. Repository 413 of BI tier 410 may store report specifications corresponding to these reports.
Selection of the Modify link causes report designer 420 to issue a request for the “BudgetPlanningWWDemo” report. In response, report engines 415 generate the report based on a corresponding report specification stored in repository 413 and on data of data sources 430 specified by the report specification. The report is returned to report designer 420 and displayed within user interface 700 of
User interface 700 shows several contextual report elements, each of which is populated by data depending upon the dimension of the section in which the element is nested. For example, the “Year” dimension of cell 710 dictates the context of the main section of the report. Accordingly, the illustrated cells of table 720 are associated with the “Year” dimension of cell 710 and are populated with “2009” data based thereon.
Column 910 is then labeled Limit as shown in
In this regard, and returning to process 500, a write back service is associated with a contextual report specification at 505. A write back service according to the present embodiment is a Web Service that provides writing to a data source such as one of data sources 430. A catalog of Web Services 414 may provide a description of input parameters of such a write back service. Embodiments are not limited to use in conjunction with a write back service.
A contextual report specification includes at least one report element which is populated by data depending upon the dimension(s) of the section(s) in which the element is nested. Report template 100 represents a contextual report specification according to some embodiments. Process 500 will be described with respect to the contextual report specification depicted in
According to some embodiments of 505, a user accesses pull-down menu 1310 and selects the Form Action menu item therefrom. Form Action panel 1410 of
The user has selected Add button 1420, resulting in the display of window 1430. Window 1430 displays Web Services 414 exposed by BI tier 410. More specifically, the list of Web Services of window 1430 may be obtained from the catalog of Web Services 414.
The write back service is associated with the current contextual report specification at 505 upon selection of OK button 1510. Moreover, a named instance (i.e., named “Update Budget Limit”) of the write back service is created and associated with the report specification at 510. The named service instance may be stored in repository 413.
At 515, an element of a report section is associated with an input parameter of the named instance of the service. The element is associated with a data dimension and with a context of the report section.
More particularly, and as shown in
Next, at 520, it is determined whether more input parameters of the created named service instance are to be associated with report elements. If so, flow cycles between 520 and 515 as additional report elements are associated with (i.e., mapped to) respective input parameters. For example,
Flow proceeds to 525 once the determination at 520 is negative. A submission control of the report specification is associated with the named service instance at 525. For example,
Accordingly, selection of an “Update Limit” button of a particular row of table 720 will cause invocation of the named service instance, with the Year of Year cell 710, the Country specified in the particular row, and the Limit specified in the particular row as input parameters. According to some embodiments, a similar button might be placed in the area above table 720 and also associated with the named service instance as described above. Selection of such a button will cause invocation of the named service instance, with the Year of Year cell 710, each Country of table 720, and the Limit associated with each country as input parameters. Therefore, although both invocations utilize the same input parameter-to-report element bindings, the context in which the submission control resides may determine the type of data passed to the service. The associations of process 500 may be stored in the current report specification as metadata relating to each block of the report specification.
A contextual report specification is identified at 2405. For example, browsing client 440 may access UI portal 411 and request a report, and a report specification associated with the report may be identified at 2405 in response. The identified report specification is associated with a write back service and specifies a report structure hierarchy including an element associated with an input parameter of the service. Accordingly, the identified report specification may comprise a report specification generated according to process 500, but embodiments are not limited thereto.
Next, at 2410, data is determined corresponding to elements of the report structure hierarchy. As is known in the art, report engine 415 may determine data from data sources 430 with which to populate contextual report elements based on the identified specification. In some embodiments, data is determined at 2410 for the report element associated with an input parameter of the write back service.
A script is generated at 2415 to invoke the write back service. The script may comprise any code (e.g., Javascript) that is executable by a suitable execution engine. The script is executable to invoke the write back service, and to include contents of the above-mentioned report element as an input parameter of the write back service. Generation of the script is based on the report specification which, as described with respect to process 500, specifies associations between the various input parameters of the write back service and the report elements, as well as a submission control of the report that is associated with the write back service.
A report output is generated at 2420 based on the report structure hierarchy, the determined data, and the generated script. More specifically, the physical layout of the report elements may be generated based on the hierarchy, the data may be used to populate the elements, and the script may be placed in a suitable portion of the report output (e.g., at the end). Report engines 415 may generate the report output in any suitable format. The report output may be generated in a generic format to facilitate rendering to any of several alternative formats (e.g., HTML, PDF, Java).
As described above, button 2510 has been defined as a submission control associated with the Update Budget Limit named instance of the updateBudgetLimit service. This association was reflected in the report specification, and therefore a corresponding invocation script of the report output is tied to button 2510. The script is intended to invoke the service and to pass appropriate input parameters thereto. The input parameters are based on the associations between input parameters and report elements that are specified in the corresponding report specification on which the script is based.
The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize that other embodiments may be practiced with modifications and alterations limited only by the claims.
Number | Name | Date | Kind |
---|---|---|---|
7302444 | Dunmore et al. | Nov 2007 | B1 |
7747782 | Hunt et al. | Jun 2010 | B2 |
20070011177 | Sol et al. | Jan 2007 | A1 |
20070203915 | McCully | Aug 2007 | A1 |
20070294631 | Wiseman | Dec 2007 | A1 |
20080033876 | Goldman et al. | Feb 2008 | A1 |
20080082495 | Polo-Malouvier et al. | Apr 2008 | A1 |
20080109235 | Binnie et al. | May 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20100100802 A1 | Apr 2010 | US |