IP Library › Granted Patent US 9,286,364
Granted Patent B2
US 9,286,364 · App. 12/693,374 · Granted Mar 15, 2016

Methods and systems for sharing information in a supply chain

Inventors: Aditya S. Kuruganti (San Francisco, CA); Kedar Doshi (Palo Alto, CA); Chaitanya Bhatt (Union City, CA); William Moxley (San Francisco, CA)
Assignee: salesforce.com inc.
G06F17/30575
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,286,364
App. No.
12/693,374
Granted
Mar 15, 2016
Kind
B2
Abstract

Method and systems for sharing product data involved in a supply chain among a plurality of subscribers to an on-demand database is described. Data related to a product is received from a first subscriber and stored into a first section of the on-demand database reserved for the first subscriber. The first subscriber then communicates a request to share the product data with one or more second subscribers. Once the first subscriber receives an acceptance from the one or more second subscribers, the product data is stored in a second section of the on-demand database reserved for the second subscriber. Changes made to the data associated with the product are synchronized between the two subscribers.

Claims (78)

1. A method, comprising:

providing, by a system, memory shared by multiple subscribers of the system each having an account with the system, where the memory includes logically separated storage areas dedicated to each of the accounts such that data stored in a storage area dedicated to an account of one of the subscribers of the system is inaccessible to other subscribers of the system;

receiving, by the system, a request from a first subscriber of the system to send a connection request message to multiple receiving parties;

sending, by the system, the connection request message to the receiving parties;

receiving, by the system, a response to the connection request message from each of the receiving parties;

determining, by the system, that the receiving parties are each another subscriber of the system based on the responses;

for each of the receiving parties establishing, by the system, a connection between the first subscriber and the another subscriber of the system that is the receiving party;

identifying, by the system, a predefined connection template assigned to the connections by the first subscriber, the predefined connection template indicating a first object stored in the storage area of the system associated with the first subscriber that is shared via the connections; and

storing, by the system, the first object shared via the connections in the storage areas of the system associated with the other subscribers of the system by:

(a) for a first one of the other subscribers of the system:

receiving, by the system, for each of a plurality of fields of the first object from the first one of the other subscribers, a mapping between the field of the first object and an existing field that is already in the storage area of the system dedicated to the account of the first one of the other subscribers; and

based on the mapping received from the first one of the other subscribers, updating, by the system, the existing fields that are in the storage area of the system dedicated to the account of the first one of the other subscribers with values of the fields of the first object; and

(b) for a second one of the other subscribers of the system:

identifying, by the system, a preconfigured setting of the second one of the other subscribers indicating that each of the fields of the first object is to be automatically mapped to an existing field that is already in the storage area of the system dedicated to the account of the second one of the other subscribers;

in response to identifying the preconfigured setting, automatically creating, by the system, a mapping between each of the fields of the first object and one of the existing fields that is already in the storage area of the system dedicated to the account of the second one of the other subscribers using at least one of a field name and a field value; and

based on the automatically created mapping, updating, by the system, the existing fields that are in the storage area of the system dedicated to the account of the second one of the other subscribers with the values of the fields of the first object;

wherein the existing fields that are already in the storage area of the system dedicated to the account of the first one of the other subscribers include fields of a second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers;

wherein the existing fields that are already in the storage area of the system dedicated to the account of the second one of the other subscribers include fields of a third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers;

wherein the first object relates to the second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers, and a customization by the first subscriber for the first object differs from a customization by the first one of the other subscribers for the second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers;

wherein the first object relates to the third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers, and the customization by the first subscriber for the first object differs from a customization by the second one of the other subscribers for the third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers; and

wherein:

(1) the customization by the first subscriber is a first name for the first object, the customization by the first one of the other subscribers is a second name for the second object, and the customization by the second one of the other subscribers is a third name for the third object, and wherein the first name differs from each of the second name and the third name, or

(2) a first field of the first object relates to each of a first field of the second object and a first field of the third object, and the customization by the first subscriber is a first field type for a first field of the first object, the customization by the first one of the other subscribers is a second field type for the first field of the second object, and the customization by the second one of the other subscribers is a third field type for the first field of the third object, and wherein the first field type differs from each of the second field type and the third field type.

2. The method as recited in claim 1 , wherein receiving the request from the first subscriber of the system to send the connection request message to the multiple receiving parties includes:

receiving from the first subscriber an indication of contacts stored in records stored in the storage area of the system associated with the first subscriber and having contact information for the receiving parties;

receiving from the first subscriber an indication of a message template for the connection request message having a request for an indication of whether the receiving parties are each the another subscriber of the system; and

generating the connection request message using the message template,

wherein the generated connection request message is sent to the receiving parties using the contact information for the receiving parties,

wherein the response to the connection request message from each of the receiving parties includes the indication that the receiving party is the another subscriber of the system and includes an indication of permissions of the receiving party within the system, and

wherein in response to determining that the receiving parties are each the another subscriber of the system based on the responses:

identifying the records of the first subscriber within the system storing the contact information for the receiving parties; and

automatically storing in the identified record for each of the receiving parties the indication that the receiving party is the another subscriber of the system and the indication of permissions of the receiving party within the system.

3. A computer program product comprising a non-transitory computer readable medium storing a plurality of instructions causing a computer to implement a method comprising:

providing, by a system, memory shared by multiple subscribers of the system each having an account with the system, where the memory includes logically separated storage areas dedicated to each of the accounts such that data stored in a storage area dedicated to an account of one of the subscribers of the system is inaccessible to other subscribers of the system;

receiving, by the system, a request from a first subscriber of the system to send a connection request message to multiple receiving parties;

sending, by the system, the connection request message to the receiving parties; receiving, by the system, a response to the connection request message from each of the receiving parties;

determining, by the system, that the receiving parties are each another subscriber of the system based on the responses;

for each of the receiving parties establishing, by the system, a connection between the first subscriber and the another subscriber of the system that is the receiving party;

identifying, by the system, a predefined connection template assigned to the connections by the first subscriber, the predefined connection template indicating a first object stored in the storage area of the system associated with the first subscriber that is shared via the connections; and

storing, by the system, the first object shared via the connections in the storage areas of the system associated with the other subscribers of the system by:

(a) for a first one of the other subscribers of the system:

receiving, by the system, for each of a plurality of fields of the first object from the first one of the other subscribers, a mapping between the field of the first object and an existing field that is already in the storage area of the system dedicated to the account of the first one of the other subscribers; and

based on the mapping received from the first one of the other subscribers, updating, by the system, the existing fields that are in the storage area of the system dedicated to the account of the first one of the other subscribers with values of the fields of the first object; and

(b) for a second one of the other subscribers of the system:

identifying, by the system, a preconfigured setting of the second one of the other subscribers indicating that each of the fields of the first object is to be automatically mapped to an existing field that is already in the storage area of the system dedicated to the account of the second one of the other subscribers;

in response to identifying the preconfigured setting, automatically creating, by the system, a mapping between each of the fields of the first object and one of the existing fields that is already in the storage area of the system dedicated to the account of the second one of the other subscribers using at least one of a field name and a field value; and

based on the automatically created mapping, updating, by the system, the existing fields that are in the storage area of the system dedicated to the account of the second one of the other subscribers with the values of the fields of the first object;

wherein the existing fields that are already in the storage area of the system dedicated to the account of the first one of the other subscribers include fields of a second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers;

wherein the existing fields that are already in the storage area of the system dedicated to the account of the second one of the other subscribers include fields of a third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers;

wherein the first object relates to the second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers, and a customization by the first subscriber for the first object differs from a customization by the first one of the other subscribers for the second object that is already in the storage area of the system dedicated to the account of the first one of the other subscribers;

wherein the first object relates to the third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers, and the customization by the first subscriber for the first object differs from a customization by the second one of the other subscribers for the third object that is already in the storage area of the system dedicated to the account of the second one of the other subscribers; and

wherein:

(1) the customization by the first subscriber is a first name for the first object, the customization by the first one of the other subscribers is a second name for the second object, and the customization by the second one of the other subscribers is a third name for the third object, and wherein the first name differs from each of the second name and the third name, or

(2) a first field of the first object relates to each of a first field of the second object and a first field of the third object, and the customization by the first subscriber is a first field type for a first field of the first object, the customization by the first one of the other subscribers is a second field type for the first field of the second object, and the customization by the second one of the other subscribers is a third field type for the first field of the third object, and wherein the first field type differs from each of the second field type and the third field type.

4. A database system, comprising

one or more processors configured for:

providing memory shared by multiple subscribers of the database system each having an account with the database system, where the memory includes logically separated storage areas dedicated to each of the accounts such that data stored in a storage area dedicated to an account of one of the subscribers of the database system is inaccessible to other subscribers of the database system;

receiving a request from a first subscriber of the database system to send a connection request message to multiple receiving parties;

sending the connection request message to the receiving parties;

receiving a response to the connection request message from each of the receiving parties;

determining that the receiving parties are each another subscriber of the database system based on the responses;

for each of the receiving parties establishing a connection between the first subscriber and the another subscriber of the database system that is the receiving party;

identifying a predefined connection template assigned to the connections by the first subscriber, the predefined connection template indicating a first object stored in the storage area of the database system associated with the first subscriber that is shared via the connections; and

storing the first object shared via the connections in the storage areas of the database system associated with the other subscribers of the database system by:

(a) for a first one of the other subscribers of the database system:

receiving, for each of a plurality of fields of the first object from the first one of the other subscribers, a mapping between the field of the first object and an existing field that is already in the storage area of the database system dedicated to the account of the first one of the other subscribers; and

based on the mapping received from the first one of the other subscribers, updating the existing fields that are in the storage area of the database system dedicated to the account of the first one of the other subscribers with values of the fields of the first object; and

(b) for a second one of the other subscribers of the database system:

identifying a preconfigured setting of the second one of the other subscribers indicating that each of the fields of the first object is to be automatically mapped to an existing field that is already in the storage area of the database system dedicated to the account of the second one of the other subscribers;

in response to identifying the preconfigured setting, automatically creating a mapping between each of the fields of the first object and one of the existing fields that is already in the storage area of the database system dedicated to the account of the second one of the other subscribers using at least one of a field name and a field value; and

based on the automatically created mapping, updating the existing fields that are in the storage area of the database system dedicated to the account of the second one of the other subscribers with the values of the fields of the first object;

wherein the existing fields that are already in the storage area of the database system dedicated to the account of the first one of the other subscribers include fields of a second object that is already in the storage area of the database system dedicated to the account of the first one of the other subscribers;

wherein the existing fields that are already in the storage area of the database system dedicated to the account of the second one of the other subscribers include fields of a third object that is already in the storage area of the database system dedicated to the account of the second one of the other subscribers;

wherein the first object relates to the second object that is already in the storage area of the database system dedicated to the account of the first one of the other subscribers, and a customization by the first subscriber for the first object differs from a customization by the first one of the other subscribers for the second object that is already in the storage area of the database system dedicated to the account of the first one of the other subscribers;

wherein the first object relates to the third object that is already in the storage area of the database system dedicated to the account of the second one of the other subscribers, and the customization by the first subscriber for the first object differs from a customization by the second one of the other subscribers for the third object that is already in the storage area of the database system dedicated to the account of the second one of the other subscribers; and

wherein:

(1) the customization by the first subscriber is a first name for the first object, the customization by the first one of the other subscribers is a second name for the second object, and the customization by the second one of the other subscribers is a third name for the third object, and wherein the first name differs from each of the second name and the third name, or

(2) a first field of the first object relates to each of a first field of the second object and a first field of the third object, and the customization by the first subscriber is a first field type for a first field of the first object, the customization by the first one of the other subscribers is a second field type for the first field of the second object, and the customization by the second one of the other subscribers is a third field type for the first field of the third object, and wherein the first field type differs from each of the second field type and the third field type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2010
From: KURUGANTI, ADITYA S.; DOSHI, KEDAR; BHATT, CHAITANYA; MOXLEY, WILLIAM
To: SALESFORCE.COM.INC.
Reel/Frame 025334/0223 →
Continuity (2)
Provisional Application 61146968 · Jan 23, 2009
Related Publication 20100235322A1 · Sep 16, 2010