IP Library Granted Patent US 9,720,993
Granted Patent B2
US 9,720,993 · App. 14/844,445 · Granted Aug 1, 2017

Methods and systems for synchronizing data in a multi-tenant database environment

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,720,993
App. No.
14/844,445
Granted
Aug 1, 2017
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for synchronizing data in a database network system. These mechanisms and methods for synchronizing data in database network system can enable embodiments to provide users a synchronization button on a UI or synchronization field through an API for specifying data for synchronization. The ability of embodiments to provide users a synchronization button on a UI or synchronization field through an API for specifying data for synchronization can enable users to easily and efficiently change and update data in a database system.

Claims (41)

1. A method for synchronizing data in an on-demand services environment, the method comprising:

receiving at a host system, a request from a user system to initiate a workflow that accesses at least one of a first object and a second object, the host system having a processor system including at least one processor and a memory system;

initiating the workflow with the host system to synchronize the first object with the second object by at least,

determining, by the processor system, if either the first object and the second object includes line items to be synchronized,

if the first object and the second object have line items to be synchronized, performing a rollup for one or more line items,

if the first object and the second object do not have line items to be synchronized, if a value stored in a first element of the first object changed,

determining, by the processor system, whether a second object is being synchronized to the first object, and if the second object is being synchronized to the first object, updating, by the host system, the second object, such that a second element that corresponds to the first element, but is in the second object, has a value that agrees with the value stored in the first element;

determining, by the host system, whether an error condition occurs; and

if the error condition is not detected, saving the updating in the memory system of the host system.

2. The method of claim 1 wherein the synchronizing of the first object and second object includes at least deleting, updating, and inserting elements of the first object to agree with the second object, the deleting of elements includes at least removing data from fields from the first object to match a corresponding empty field from the second object, the inserting of elements includes at least adding data to fields of the first object to match a corresponding field containing data from the second object.

3. The method of claim 1 wherein the first object is an opportunity, the opportunity including at least data associated with selling products to a customer, the opportunity being stored, in a portion of the database dedicated to the tenant.

4. The method of claim 1 wherein the second object is a quote, the quote including at least sales information given to a customer, the quote being stored in a portion of the database dedicated to the tenant.

5. The method of claim 1 wherein the first object is an opportunity and the second object is a quote, each having at least six elements, the elements including at least a quantity, a price, a discount, a service date, a revenue schedule, and a quantity schedule.

6. The method of claim 1 further comprising sending a user interface having a synchronization button to the user system, wherein receiving the request includes at least receiving an indication that the user selected the synchronize button.

7. The method of claim 1 , wherein the request is made by designating, via an application programming interface, the first object and second object for synchronization.

8. The method of claim 1 wherein the error condition is an attempt to perform a second synchronization within a single transaction.

9. A non-transitory computer-readable medium having stored thereon instructions for synchronizing data in a multi-tenant database environment that, when executed, cause one or more processors to:

receive at a host system, a request from a user system to initiate a workflow that accesses at least one of a first object and a second object, the host system having a processor system including at least one processor and a memory system;

initiate the workflow with the host system to synchronize the first object with the second object by at least

determining, by the processor system, if either the first object and the second object includes line items to be synchronized,

if the first object and the second object have line items to be synchronized, performing a rollup for one or more line items,

if the first object and the second object do not have line items to be synchronized, if a value stored in a first element of the first object changed, determining, by the processor system, whether a second object is being synchronized to the first object, and if the second object is being synchronized to the first object, updating, by the host system, the second object, such that a second element that corresponds to the first element, but is in the second object, has a value that agrees with the value stored in the first element;

determining, by the host system, whether an error condition occurs; and

if the error condition is not detected, saving the updating in the memory system of the host system.

10. The non-transitory computer-readable medium of claim 9 wherein the synchronizing of the first object and second object includes at least deleting, updating, and inserting elements of the first object to agree with the second object, the deleting of elements includes at least removing data from fields from the first object to match a corresponding empty field from the second object, the inserting of elements includes at least adding data to fields of the first object to match a corresponding field containing data from the second object.

11. The non-transitory computer-readable medium of claim 9 wherein the first object is an opportunity, the opportunity including at least data associated with selling products to a customer, the opportunity being stored, in a portion of the database dedicated to the tenant.

12. The non-transitory computer-readable medium of claim 9 wherein the second object is a quote, the quote including at least sales information given to a customer, the quote being stored in a portion of the database dedicated to the tenant.

13. The non-transitory computer-readable medium of claim 9 wherein the first object is an opportunity and the second object is a quote, each having at least six elements, the elements including at least a quantity, a price, a discount, a service date, a revenue schedule, and a quantity schedule.

14. The non-transitory computer-readable medium of claim 9 further comprising sending a user interface having a synchronization button to the user system, wherein receiving the request includes at least receiving an indication that the user selected the synchronize button.

15. The non-transitory computer-readable medium of claim 9 , wherein the request is made by designating, via an application programming interface, the first object and second object for synchronization.

16. The non-transitory computer-readable medium of claim 9 wherein the error condition is an attempt to perform a second synchronization within a single transaction.

17. A system comprising:

one or more computing systems, each having at least one processor coupled with memory, the one or more computing systems to receive a request from a user computing system to initiate a workflow that accesses at least one of a first object and a second object, to initiate the workflow to synchronize the first object with the second object by at least,

determining, by the processor system, if either the first object and the second object includes line items to be synchronized,

if the first object and the second object have line items to be synchronized, performing a rollup for one or more line items,

if the first object and the second object do not have line items to be synchronized, if a value stored in a first element of the first object changed,

determining, by the processor system, whether a second object is being synchronized to the first object, and if the second object is being synchronized to the first object, updating, by the host system, the second object, such that a second element that corresponds to the first element, but is in the second object, has a value that agrees with the value stored in the first element;

the one or more computing systems further to determine whether an error condition occurs, and if the error condition is not detected, save the updating in the memory.

18. The system of claim 17 wherein the synchronizing of the first object and second object includes at least deleting, updating, and inserting elements of the first object to agree with the second object, the deleting of elements includes at least removing data from fields from the first object to match a corresponding empty field from the second object, the inserting of elements includes at least adding data to fields of the first object to match a corresponding field containing data from the second object.

19. The system of claim 17 wherein the first object is an opportunity, the opportunity including at least data associated with selling products to a customer, the opportunity being stored, in a portion of the database dedicated to the tenant.

20. The system of claim 17 wherein the second object is a quote, the quote including at least sales information given to a customer, the quote being stored in a portion of the database dedicated to the tenant.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069430/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: ZIEMANN, TYLER; HANG, JAMES; LEVINE, SUSAN S.
To: SALESFORCE.COM, INC.
Reel/Frame 036488/0642 →