Asynchronous rollup numbers forecasting methods and systems
First Claim
1. A computer-implemented method of asynchronously updating forecast rollup numbers:
- receiving, by a processor system, a data update, including a source data or an override data update;
adding, by the processor system, one or more events to an event queue based on the data update;
dequeuing, by the processor system, a batch of one or more events from the event queue; and
processing, by the processor system, the batch of events to update forecast rollup numbers, the processing including;
retrieving one or more source data based on the batch of events being processed,retrieving one or more target data based on the batch of events being processed, each target data being associated with a corresponding source data,determining differences in value between each target data and the corresponding source data,updating each target data based on the corresponding difference in value,retrieving forecast data based on the batch of events being processed,aggregating the differences in value associated with users at a first level of an organizational hierarchy to provide a first aggregated data, andsumming the first aggregated data with forecast data corresponding to a user at a second level of the organizational hierarchy to provide a second aggregated data, the second level being at a higher level of the organizational hierarchy than the first level.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved methods and systems are provided for asynchronously updating forecast rollup numbers. The asynchronousity is achieved by decoupling the source data change from further manipulations of the source data, for example in calculating and updating forecast rollup numbers by user role hierarchy, layer by layer. An event message queue implementation can be used for asynchronous processing. The process works by dequeuing a batch of event messages and then deduping and sorting them before applying forecast logic. Forecast numbers are updated based on target data and then rolled up the user role levels by aggregating forecast numbers for all subordinate forecast data entries.
-
Citations
17 Claims
-
1. A computer-implemented method of asynchronously updating forecast rollup numbers:
-
receiving, by a processor system, a data update, including a source data or an override data update; adding, by the processor system, one or more events to an event queue based on the data update; dequeuing, by the processor system, a batch of one or more events from the event queue; and processing, by the processor system, the batch of events to update forecast rollup numbers, the processing including; retrieving one or more source data based on the batch of events being processed, retrieving one or more target data based on the batch of events being processed, each target data being associated with a corresponding source data, determining differences in value between each target data and the corresponding source data, updating each target data based on the corresponding difference in value, retrieving forecast data based on the batch of events being processed, aggregating the differences in value associated with users at a first level of an organizational hierarchy to provide a first aggregated data, and summing the first aggregated data with forecast data corresponding to a user at a second level of the organizational hierarchy to provide a second aggregated data, the second level being at a higher level of the organizational hierarchy than the first level. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium that stores code, which when executed by a processor, causes the processor to:
-
receive a data update, including a source data or an override data update; add one or more events to an event queue based on the data update; dequeue a batch of one or more events from the event queue; and process the batch of events to update forecast rollup numbers, the process causing the processor to; retrieve one or more source data based on the batch of events being processed, retrieve one or more target data based on the batch of events being processed, each target data being associated with a corresponding source data, determine differences in value between each target data and the corresponding source data, update each target data based on the corresponding difference in value, retrieve forecast data based on the batch of events being processed, aggregate the differences in value associated with users at a first level of an organizational hierarchy to provide a first aggregated data, and sum the first aggregated data with forecast data corresponding to a user at a second level of the organizational hierarchy to provide a second aggregated data, the second level being at a higher level of the organizational hierarchy than the first level. - View Dependent Claims (15)
-
-
16. A database system that asynchronously updates forecast rollup numbers, the system comprising:
-
a database configured to store source data or override data, target data, and forecast data; and a processor configured to; receive a data update, including a source data or an override data update; add one or more events to an event queue based on the data update; dequeue a batch of one or more events from the event queue, and process the batch of events to update forecast rollup numbers, the process including the processor configured to; retrieve one or more source data based on the batch of events being processed, retrieve one or more target data based on the batch of events being processed, each target data being associated with a corresponding source data, determine differences in value between each target data and the corresponding source data, update each target data based on the corresponding difference in value, retrieve forecast data based on the batch of events being processed, aggregate the differences in value associated with users at a first level of an organizational hierarchy to provide a first aggregated data, and sum the first aggregated data with forecast data corresponding to a user at a second level of the organizational hierarchy to provide a second aggregated data, the second level being at a higher level of the organizational hierarchy than the first level. - View Dependent Claims (17)
-
Specification