IP Library Granted Patent US 10,521,211
Granted Patent B2
US 10,521,211 · App. 15/453,539 · Granted Dec 31, 2019

Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment

Inventors: David Brooks (San Jose, CA); Lewis Wiley Tucker (San Francisco, CA); Benji Jasik (San Francisco, CA); Timothy Mason (San Francisco, CA); Eric David Bezar (Oakland, CA); Simon Wong (San Carlos, CA); Douglas Chasman (Pittsford, NY); Tien Tzuo (San Francisco, CA); Scott Hansma (Burlingame, CA); Adam Gross (San Francisco, CA); Steven Tamm (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F8/61G06F3/0482G06F8/60G06F8/658G06F16/176G06F16/211G06F16/214G06F16/2329G06F16/27G06F16/283G06F16/289G06F16/40G06F16/9566G06F16/972H04L63/1433H04L67/34G06F3/0483G06F15/173G06F16/24573G06F16/904H04L12/50
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 10,521,211
App. No.
15/453,539
Granted
Dec 31, 2019
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for creating, exporting, viewing and testing, and importing custom applications in a multitenant database environment. These mechanisms and methods can enable embodiments to provide a vehicle for sharing applications across organizational boundaries. The ability to share applications across organizational boundaries can enable tenants in a multi-tenant database system, for example, to easily and efficiently import and export, and thus share, applications with other tenants in the multi-tenant environment.

Claims (58)

1. A computer-based method of transporting an application package to at least one server of a hosted online service provider system, the method including:

preparing an application package for an application created by a source organization that is a tenant of the hosted online service provider system using an application builder, the application package including:

(i) at least one object implementing a customer relationship management (CRM) solution to install onto the at least one server of the hosted online service provider system,

(ii) metadata customizing one or more fields of the at least one object according to attributes imported into the application package, and

(iii) logic implemented with code that executes in conjunction with the at least one object to implement the application; and

publishing the application package as a customer specific solution for accessing and installing by one or more target organizations onto the at least one server of the hosted online service provider system;

marking the at least one object as being manageable to enable customization of the at least one object by the one or more target organizations; and

transporting the application package to the at least one server of the hosted online service provider system to enable a user of the one or more target organizations to select to import the application package to the one or more target organizations,

wherein the hosted online service provider system is a multi-tenant system and the one or more target organizations and the source organization are separate tenants of the hosted online service provider system.

2. The method of claim 1 , further including detecting an attempt to delete an object that has been transported; and blocking the attempt to delete the object.

3. The method of claim 1 , further including maintaining a version history of transported objects.

4. The method of claim 1 , wherein the application package further includes one or more files for customizing the application package at the one or more target organizations.

5. The method of claim 1 , further including:

detecting a conflict between existing data and a data portion for an object to be transported; and

blocking transporting the conflicting data.

6. The method of claim 1 , further including:

checking whether a transport user has appropriate organization permissions to transport the application package.

7. The method of claim 1 , further including:

prompting a transport user for mapping between source organization specific references in the application package to values appropriate to the one or more target organizations.

8. The method of claim 1 , further including migrating adaptations using a web format document.

9. The method of claim 1 , further including enabling deploying the application package from a test system to a production system.

10. The method of claim 1 , further including:

checking a credential indicating whether a transport user is authorized to transport the application package.

11. The method of claim 1 , further including:

locking the one or more target organizations during transport thereby preventing inconsistent updates.

12. The method of claim 1 , further including:

copying setup data of the application package in a development mode,

thereby enabling a transport user to verify the application functions prior to deploying the application to users.

13. The method of claim 1 , further including:

scanning the application package for malicious functionality.

14. The method of claim 1 , further including:

restricting a transport user from changing setup data after the application package is transported.

15. A computer system to execute a database system to service an application builder in communication with at least one server of a hosted online service provider system, the computer system comprising:

a non-transitory computer-readable medium having stored therein the database system and the application builder; and

a processor coupled to the non-transitory computer-readable medium, the processor to execute the database system to:

prepare an application package for an application created by a source organization that is a tenant of the hosted online service provider system using the application builder, the application package including:

(i) at least one object implementing a customer relationship management (CRM) solution to install onto the at least one server of the hosted online service provider system,

(ii) metadata customizing one or more fields of the at least one object according to attributes imported into the application, and

(iii) logic implemented with code that executes in conjunction with the at least one object to implement the application; and

publish the application package as a customer specific solution for accessing and installing by one or more target organizations onto the at least one server of the hosted online service provider system;

mark the at least one object as being manageable to enable customization of the at least one object by the one or more target organizations; and

transport the application package to the at least one server of the hosted online service provider system to enable a user of the one or more target organizations to select to import the application package to the one or more target organizations,

wherein the hosted online service provider system is a multi-tenant system and the one or more target organizations and the source organization are separate tenants of the hosted online service provider system.

16. A non-transitory computer readable storage medium impressed with computer program instructions, the instructions, when executed on a processor, implement a method including:

preparing an application package for an application created by a source organization that is a tenant of the hosted online service provider system using an application builder, the application package including:

(i) at least one object implementing a customer relationship management (CRM) solution to install onto at least one server of the hosted online service provider system,

(ii) metadata customizing one or more fields of the at least one object according to attributes imported into the application, and

(iii) logic implemented with code that executes in conjunction with the at least one object to implement the application; and

publishing the application package as a customer specific solution for accessing and installing by one or more target organizations onto the at least one server of the hosted online service provider system;

marking the at least one object as being manageable to enable customization of the at least one object by the one or more target organizations; and

transporting the application package to the at least one server of the hosted online service provider system to enable a user of the one or more target organizations to select to import the application package to the one or more target organizations,

wherein the hosted online service provider system is a multi-tenant system and the one or more target organizations and the source organization are separate tenants of the hosted online service provider system.

17. The non-transitory computer readable storage medium of claim 16 , further including detecting an attempt to delete an object that has been transported; and blocking the attempt to delete the object.

18. The non-transitory computer readable storage medium of claim 16 , further including maintaining a version history of transported objects.

19. The non-transitory computer readable storage medium of claim 16 , wherein the application package further includes one or more files for customizing the application package at the one or more target organizations.

20. The non-transitory computer readable storage medium of claim 16 , further including:

detecting a conflict between existing data and a data portion for an object to be transported; and

blocking transporting the conflicting data.

Assignments (3)
CHANGE OF NAME Recorded Feb 17, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062794/0656 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATES FOR INVENTORS PREVIOUSLY RECORDED AT REEL: 041509 FRAME: 0209. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 21, 2019
From: BEZAR, ERIC DAVID; BROOKS, DAVID; TUCKER, LEWIS WILEY; JASIK, BENJI; MASON, TIMOTHY; WONG, SIMON; CHASMAN, DOUGLAS; TZUO, TIEN; HANSMA, SCOTT; GROSS, ADAM; TAMM, STEVEN
To: SALESFORCE.COM, INC.
Reel/Frame 051087/0764 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2017
From: BROOKS, DAVID; TUCKER, LEWIS WILEY; JASIK, BENJI; MASON, TIMOTHY; BEZAR, ERIC DAVID; WONG, SIMON; CHASMAN, DOUGLAS; TZUO, TIEN; HANSMA, SCOTT; GROSS, ADAM; TAMM, STEVEN
To: SALESFORCE.COM, INC.
Reel/Frame 041509/0209 →