The embodiments relate to computer implemented calculations based upon active data.
Traditional data management system does not keep track of data change or detect data change, so any change in reference data and transaction data will require a recalculation of all the results again.
According to an embodiment of the present invention, a computer system is controlled to perform a calculation based upon a rule (reference data) and corresponding data for the rule by utilizing active data for the rule and/or for the corresponding data.
These together with other aspects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout.
The embodiments relate to calculating based upon active data or data that has been most recently changed in relation to a time threshold. An example embodiment is described in connection with a financial commission management system, however, the present invention is not limited as such and is directed to a computer system controlled to perform a calculation based upon a rule (reference data) and corresponding data for the rule by utilizing active data for the rule and for the corresponding data.
For example, in case of a commission management system, a computer system stores and calculates commissions for sales representatives for a set of defined rules as reference data, for example, compensation rules and data provided for the rule or data to which the rule is applied, namely transaction data, such as sales transactions data.
The present invention is a new approach of calculating commissions in the commission management system. Traditional commission management system does not keep track of data change or detect data change, so any change in the reference data (i.e. data related to sales representatives, compensation rules and the elements used in the compensation rules) and transaction data (i.e. sales transaction) will require a recalculation of all the results again. The disadvantage is that the calculation when data has been changed recalculates results that have not changed which do not require recalculation. This kind of system becomes very inefficient if the change only affects a very small number of sales representatives and it has to recalculate results for all the unaffected sales representatives.
According to an aspect of an embodiment, changes to the reference data and transaction data are tracked and any results are recalculated only with respect to data affected by the changes.
According to an aspect of an embodiment, a persistence layer and a data model that supports temporal data as a way to keep track of data change are provided. A calculation engine can recalculate results, for example, financial commissions, for the changed data including data affected by the changed data (collectively referred to as active data).
In
In
The persistence layer used by the data entry user interface 102 handles temporal data. Specifically, the query manager in the persistence layer at the application server 100 constructs a query to fetch only the active data (i.e. data last modified and/or created including data affected by the modification and/or creation) by utilizing applicable temporal attributes. The persistence layer handles a reference data change by end dating an existing data record by setting the temporal attribute “removeDate” to the current time and creating a new record with the change and setting the new record's temporal attribute “createDate” to current time and the new record's temporal attribute removeDate to an arbitrary value that signifies end of time. For changes in the transactional data, the persistence layer updates the temporal attribute “modification Date” on the record along with the changes.
In
In
According to an aspect of an embodiment, temporal attributes are utilized in a manner to easily and efficiently maintain a record (log) of chain of changes to the reference data for audit purposes. The embodiments of the invention are not limited to the described temporal attributes and other forms of temporal attributes can be provided. For example, any combination of one or more of the “createDate” and “removeDate” temporal attributes can be provided, and/or a single “modificationDate” temporal attribute can be utilized in the reference data and/or the transaction data. According to an aspect of an embodiment, creation of a new record with updated temporal attributes upon a data change (update and/or remove) can be omitted by way of a single temporal attribute along with other added attributes to identify a chain of changes. In addition, while temporality as a most recent or active information has been described in relation to time information, the embodiments are not limited as such and other information, such as a counter, entity organization information, etc. can be utilized to convey such temporality. [NOTE: This paragraph attempts to extend the concept of temporal attributes and maintaining a log of chain of changes—please confirm and add/modify as appropriate.]
When a user requests to recalculate one or more commissions after making some changes to the data, a request will be sent to the calculation engine 106 to start the commission calculation process. The calculation engine calculation engine 106 is able to calculate based upon only the data that has changed and data affected by changes (collectively referred to as active data).
In
According to an aspect of an embodiment of the invention, at 401, analyze stage starts by loading reference data and/or transaction data that is created or modified since a threshold calculation, for example, the most recent calculation. Reference data can be retrieved with a temporal attribute based query similar to the following from the temporal data model 110:
Transaction data can be retrieved similarly with the following query:
In addition, at 401, the retrieved changed data will be examined to discover the dependent data that also need to be re-calculated.
Conceptually, the algorithm to calculate the affected position can work as follow:
Similarly, the affected rules as another reference data can be determined by navigating the dependency graph 522 in
In
Conceptually, the operations to determine the affected rules can be as follow:
If data, for example in this case sales transaction data, does not depend on anything, a query issued to retrieve the changed sales transactions since a threshold calculation would be sufficient. Once the changed and affected data (active data) are discovered, it will be persisted to a database to be used by subsequent stage(s).
In Reset stage 402, the results generated from changed and affected data will be removed from the database 110.
In the Classification stage 502, the changed and affected sales transactions (active data) can be classified, for example will be classified to the corresponding sales territory defined by the classification rules.
In Allocate stage 504, credits will be re-allocated by processing all the changed compensation rules for all the changed sales transactions and positions.
In the last stage, Reward stage 506, new credits created from Allocate stage will be used to process compensation rules for all the positions to create commissions which will be pay out to the position.
Typically, a memory component 1506 stores the instructions for execution by the controller 1504. According to an aspect of an embodiment, the apparatus reads/writes/processes data of any computer readable recording media 1510 and/or communication transmission media interface 1512. The communication transmission media interface is to data network with one or other machines (e.g., computers) to execute the described functions. The embodiments can be implemented via grid computing. The display 1502, the CPU 1504 (e.g., hardware logic circuitry based computer processor that processes instructions, namely software), the memory 1506, the computer readable media 1510, and the communication transmission media interface 1512 are in communication by one or more the data bus(es) 1508.
According to an aspect of the embodiments of the invention, any combinations of one or more of the described features, functions, operations, and/or benefits can be provided. A combination can be one or a plurality. The embodiments can be implemented as an apparatus (a machine) that includes hardware for performing the described features, functions, operations, and/or benefits, for example, hardware to execute instructions or software, for example, computing hardware (i.e., computing apparatus), such as (in a non-limiting example) any computer or computer processor that can store, receive, retrieve, process and/or output data and/or communicate (network) with other computers. According to an aspect of an embodiment, the described features, functions, operations, and/or benefits can be implemented by and/or use computing hardware and/or software. For example, the application server 100, a client terminal implementing the user interface 102, a calculation engine 106, can comprise a computing controller (CPU) (e.g., a hardware logic circuitry based computer processor that processes or executes instructions, namely software/program), computer readable media, transmission communication interface (network interface), input device, and/or an output device, for example, a display device, and which can be in communication among each other through one or more data communication buses. In addition, an apparatus can include one or more apparatuses in computer network communication with each other or other devices. In addition, a computer processor can refer to one or more computer processors in one or more apparatuses or any combinations of one or more computer processors and/or apparatuses. An aspect of an embodiment relates to causing and/or configuring one or more apparatuses and/or computer processors to execute the described operations. The results produced can be output to an output device, for example, displayed on the display. An apparatus or device refers to a physical machine that performs operations, for example, a computer (physical computing hardware or machinery) that implement or execute instructions, for example, by way of software, which is code executed by computing hardware, and/or by way of computing hardware (e.g., in circuitry, etc.), to achieve the functions or operations being described. The functions of embodiments described can be implemented in any type of apparatus that can execute instructions or code. More particularly, programming or configuring or causing an apparatus or device, for example, a computer, to execute the described functions of embodiments of the invention creates a new machine where in case of a computer a general purpose computer in effect becomes a special purpose computer once it is programmed or configured or caused to perform particular functions of the embodiments of the invention pursuant to instructions from program software.
A program/software implementing the embodiments may be recorded on a computer-readable media, e.g., a non-transitory or persistent computer-readable medium. Examples of the non-transitory computer-readable media include a magnetic recording apparatus, an optical disk, a magneto-optical disk, and/or volatile and/or non-volatile semiconductor memory (for example, RAM, ROM, etc.). Examples of the magnetic recording apparatus include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), DVD-ROM, DVD-RAM (DVD-Random Access Memory), BD (Blue-ray Disk), a CD-ROM (Compact Disc—Read Only Memory), and a CD-R (Recordable)/RW. The program/software implementing the embodiments may be transmitted over a transmission communication path, e.g., a wire and/or a wireless network implemented via hardware. An example of communication media via which the program/software may be sent includes, for example, a carrier-wave signal.
The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.
Number | Date | Country | |
---|---|---|---|
Parent | 13672401 | Nov 2012 | US |
Child | 13725263 | US |