IP Library Granted Patent US 9,934,473
Granted Patent B2
US 9,934,473 · App. 14/335,892 · Granted Apr 3, 2018

Selecting a synchronous or asynchronous process to determine a forecast

Inventors: Kedar Doshi (Palo Alto, CA); Mark Fischer (Ashland, OR); Evan Chou (Fremont, CA)
Assignee: salesforce.com, inc.
G06Q10/04G06Q10/0639G06Q30/0202
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,934,473
App. No.
14/335,892
Granted
Apr 3, 2018
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for selecting a synchronous or asynchronous process to determine a forecast. These mechanisms and methods for such synchronous/asynchronous process selection can enable embodiments to determine forecasts for multiple users (e.g. with hierarchical relationships, etc.) over an arbitrary time interval. The ability of embodiments to provide forecasts that involve such a large amount of data in an effective way can enable forecasting that was otherwise infeasible due to resource limitations.

Claims (57)

1. A method, comprising:

determining, by a computer system, that a first deal affecting a first sales forecast has been modified;

responsive to determining modification of the first deal involves a data event, automatically selecting, by the computer system, a synchronous process instead of asynchronous processes to update the first sales forecast based on the data event;

responsive to selecting the synchronous process, executing, by the computer system, the synchronous process, wherein executing the synchronous process comprises:

determining a difference amount for the first sales forecast based on the modification of the first deal; and

determining an updated amount for the first sales forecast based on the difference amount and a previous forecast amount associated with the first sales forecast;

determining, by the computer system, that a second deal affecting a second sales forecast has been modified:

responsive to determining that a set-up function associated with the second deal was modified, automatically selecting, by the computer system, an asynchronous process instead of synchronous processes to update the second sales forecast based on the set-up function being modified;

executing, by the computer system after a delay, the asynchronous process to recalculate the second sales forecast, the executed asynchronous process slower than the executed synchronous process and consuming more resources of the computer system than the executed synchronous process.

2. The method of claim 1 , wherein determining the difference amount further comprises:

identifying a user associated with the first deal;

identifying additional users based on a hierarchy that includes the identified user;

determining deal amounts associated with the identified user and the additional users;

determining an aggregate of the deal amounts; and

determining the difference amount based on the aggregate of the deal amounts.

3. The method of claim 2 , wherein the deal amounts are for a time period.

4. A computer system, comprising:

a processor; and

a non-transitory computer readable storage medium configured to store instructions, the instructions when executed by the processor cause the processor to perform operations comprising:

determining that a first deal affecting a first sales forecast has been modified;

responsive to determining that modification of the first deal involves a data event automatically selecting a synchronous process instead of asynchronous processes to update the first sales forecast based on the data event;

responsive to selecting the synchronous process, executing the synchronous process, wherein executing the synchronous process comprises:

determining a difference amount for the first sales forecast based on the modification of the first deal; and

determining an updated amount for the first sales forecast based on the difference amount and a previous forecast amount associated with the first sales forecast;

determining that a second deal affecting a second sales forecast has been modified;

responsive to determining that a set-up function associated with the second deal was modified, automatically selecting, by the computer system, an asynchronous process instead of synchronous processes to update the second sales forecast based on the set-up function being modified;

executing, after a delay, the asynchronous process to recalculate the second sales forecast, the executed asynchronous process slower than the executed synchronous process and consuming more resources of the computer system than the executed synchronous process.

5. A non-transitory computer readable storage medium configured to store instructions, the instructions when executed by a processor cause the processor to perform operations comprising:

determining that a first deal affecting a first sales forecast has been modified;

responsive to determining that modification of the first deal involves a data event automatically selecting a synchronous process instead of asynchronous processes to update the first sales forecast based on the data event;

responsive to selecting the synchronous process, executing the synchronous process, wherein executing the synchronous process comprises:

determining a difference amount for the first sales forecast based on the modification of the first deal; and

determining an updated amount for the first sales forecast based on the difference amount and a previous forecast amount associated with the first sales forecast;

determining that a second deal affecting a second sales forecast has been modified;

responsive to determining that a set-up function associated with the second deal was modified, automatically selecting, by the computer system, an asynchronous process instead of synchronous processes to update the second sales forecast based on the set-up function being modified;

executing, after a delay, the asynchronous process to recalculate the second sales forecast, the executed asynchronous process slower than the executed synchronous process and consuming more resources of the computer system than the executed synchronous process.

6. The method of claim 1 , wherein the asynchronous process is performed in a batch.

7. The method of claim 1 , wherein the set-up function associated with the second deal comprises metadata describing data associated with the second deal or metadata used to categorize the data.

8. The method of claim 1 , wherein the data event comprises modification to data associated with the first deal that includes at least one of addition to the data and removal of the data.

9. The non-transitory computer readable storage medium of claim 5 , wherein determining the difference amount further comprises:

identifying a user associated with the first deal;

identifying additional users based on a hierarchy that includes the identified user;

determining deal amounts associated with the identified user and the additional users;

determining an aggregate of the deal amounts; and

determining the difference amount based on the aggregate of the deal amounts.

10. The non-transitory computer readable storage medium of claim 9 , wherein the deal amounts are for a time period.

11. The computer system of claim 4 , wherein determining the difference amount further comprises:

identifying a user associated with the first deal;

identifying additional users based on a hierarchy that includes the identified user;

determining deal amounts associated with the identified user and the additional users;

determining an aggregate of the deal amounts; and

determining the difference amount based on the aggregate of the deal amounts.

12. The computer system of claim 11 , wherein the deal amounts are for a time period.

13. The method of claim 1 , further comprising:

responsive to automatically selecting the asynchronous process;

adding the asynchronous process to a queue including a plurality of processes; and

removing from the queue a process from the plurality of processes based on adding the asynchronous process to the queue.

Assignments (2)
CHANGE OF NAME Recorded Sep 20, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 064975/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2014
From: DOSHI, KEDAR; FISCHER, MARK; CHOU, EVAN
To: SALESFORCE.COM, INC.
Reel/Frame 033363/0435 →
Continuity (7)
Continuation 13654348 · Oct 17, 2012
Continuation 13353260 · Jan 18, 2012
Continuation 13353265 · Jan 18, 2012
Continuation 11832526 · Aug 1, 2007
Continuation 11832526
Provisional Application 60828188 · Oct 4, 2006
Related Publication 20140330617A1 · Nov 6, 2014