In complex systems such as enterprise management systems, a user may access transactional applications and analytical applications simultaneously. These applications may be accessed via a portal that shows views created by the various applications. Transactional applications support the transactions performed by the enterprise. For example, transactional applications allow users to perform tasks such as creating a purchase order, entering a new customer, placing a supply order, and other tasks. Analytical applications generally analyze and display information created from stored data to measure performance within the enterprise. For example, an analytical application may provide information on the number of debtors and creditors of the enterprise, the efficiency of various shipping methods, the percentage of accounts overdue, and other information. When a user performs a task using a transactional application, a related analytical application continues displaying information based on data as it existed prior to the user's actions. In order to display information based on updated, created, or deleted data, an analytical application must re-select data including the modified data from the backend system.
Such a system is shown in
The present invention provides systems and methods to synchronize a transactional application and an analytical application. When a user modifies data stored in a backend system via a transactional application, the transactional application may send a portal event to an analytical application. If an analytical application receives such a portal event, it may select data from the backend system in order to display information based on data that may have been changed by the user. The portal event may include information describing changes made by the user. The analytical application may not update the data it displays or on which it bases displayed information in the absence of a portal event. Thus, communication between the analytical application and the backend system may be reduced. Furthermore, the analytical application may have more reliable access to up-to-date data, making it more likely that the information displayed to the user is correct and current.
For example, the portal 110 may be a web browser that displays a transactional application interface 131 and an analytical application interface 132 in separate frames. Each application interface 131 and 132 allows a user to interact with an application 111 and 112, respectively. The portal 110 may invoke the transactional application interface 131 and the analytical application interface 132, such as by loading a set of navigation elements, command elements and other interfaces. The analytical application interface 132 may present information based on the data or type of data that the transactional application interface 131 allows a user to view and modify. As a specific example, the transactional application 111 may allow a user to view, create, delete, and modify vendor contracts, and the analytical application 112 may calculate and present the total number of current contracts, contracts created in the recent month, or other information derived from or related to information accessible via the transactional application 111. The analytical application may display other data stored in the system and other information derived from that data. For example, the analytical application may request a list of all current contracts from a database 122. It may then calculate performance measurements, summary information, or other information from the data received. Examples of such information include the number of contracts ending over the next six months, the total value of all current contracts, and the expected average profit from each contract. Other types of information may be calculated and displayed. The analytical application 112 may store derived information in a database 122 or 123, for use later. When the analytical application receives a request for information from the analytical application interface 132, it may display previously-stored information or it may compile information to display at the time the request is received. In general, an analytical application may display both data that is drawn directly from the backend system, and information that is calculated, derived from, or otherwise based on that data.
A user may access the transactional application to initiate transactions in the system, which may result in modifications to data stored in the backend system. After such a modification is complete, the database in which the changed data is stored 122 may send a message or other indication to the transactional application 111 that the data has been successfully modified. The transactional application interface 131 may indicate to the user that a change has been made to data stored in the system 120 and/or send a portal event 200 to the analytical application interface 132. The portal event 200 may contain information about the modification, such as the type of data modified or an identifier associated with the updated data. For example, if user initiates a transaction that adds a row to a database table, the portal event 200 may contain a unique identifier associated with the new entry or the name of the table that was modified. Similarly, the portal event 200 may contain general information indicating that data has been modified. When an analytical application interface 132 receives a portal event 200, it may request data from the backend system 200. For example, it may request updated analytical data stored by the analytical application 112 in an associated database 123. If the portal event 200 specifies specific data or data structures that were modified by a transaction, the analytical application 132 may request only the data that was modified, or it may request additional data.
The applications 111 and 112 may execute on remote servers as previously described, or they may be stored and execute on the user's client computer. Such an embodiment of the invention is shown in
An example of communications between components in embodiments of the present invention, such as the system described with respect to
When the analytical application receives a portal event 508, it may determine if a request is required to update the information displayed in the analytical application. For example, if the user updated a business partner address as described above, the portal event may contain information describing this update. If the analytical application is displaying information derived from, for example, the number of contracts with each business partner, it may not need to request updated data from the backend system in response to the update of a business partner address. Similarly, if the analytical application displays information describing the geographic distribution of business partners, the information may be inaccurate after the update is complete. In such a case where the analytical application displays information that may be rendered inaccurate by a user modification of data, the analytical application may request the updated data from the backend system 509. If the portal event does not contain information specifying details about the data that was updated, the analytical application may request updated information from the backend server after each portal event received by the transactional application.
If the analytical application determines that it does not need to request updated data, it may display an indication 511 that the information displayed by the analytical application was unchanged by the update performed by the user. If the analytical application requests data from the backend server, it may then update displayed information that contains or is derived from the data and display the updated information to the user 510.
Although the present invention has been described with reference to particular examples and embodiments, it is understood that the present invention is not limited to those examples and embodiments. The present invention as claimed therefore includes variations from the specific examples and embodiments described herein, as will be apparent to one of skill in the art.