IP Library Granted Patent US 8,799,233
Granted Patent B2
US 8,799,233 · App. 13/016,949 · Granted Aug 5, 2014

System, method and computer program product for validating one or more metadata objects

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 (San Francisco, CA); Adam Gross (San Francisco, CA); Steven Tamm (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F17/30017G06F17/30893G06F17/30575G06F8/60G06F8/68
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 8,799,233
App. No.
13/016,949
Granted
Aug 5, 2014
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 multi-tenant 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 (55)

1. A method, comprising:

providing a platform, wherein the platform is a framework shared by a plurality of developers and end users;

creating, through the platform by one of the developers, a package definition that references a set of one or more metadata objects describing an application, wherein the one or more metadata objects referenced by the package definition include at least a first metadata object explicitly included in the package definition and at least a second metadata object that is dependent on the first metadata object and that is not explicitly included in the package definition;

validating through the platform, the one or more metadata objects;

after the one or more metadata objects have been validated, making the one or more metadata objects accessible to a first end user system, wherein the one or more metadata objects are saved into a storage location accessible to the first end user system;

wherein the one or more metadata objects are conditionally modifiable by a user of the first end user system, based on a specification in the package definition by:

identifying in the specification of the package definition any of the saved metadata objects that are flagged by the developer, wherein the developer flags in the specification of the package definition which of the metadata objects are modifiable by the user of the first end user system,

providing a wizard for allowing modifications only to the saved metadata objects that are identified as being flagged by the developer,

wherein the developer flags metadata objects for which modifications are required by the user of the first end user system,

wherein the developer flags metadata objects for which modifications are optional by the user of the first end user system.

2. The method recited in claim 1 , wherein the package definition includes a package identifier.

3. The method recited in claim 1 , wherein the validating includes checking for missing components.

4. The method recited in claim 1 , wherein the package definition is stored in a database.

5. The method recited in claim 1 , wherein the validation is performed in response to a user request.

6. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for providing a platform, wherein the platform is a framework shared by a plurality of developers and end users;

computer code for creating, through the platform by one of the developers, a package definition that references a set of one or more metadata objects describing an application, wherein the one or more metadata objects referenced by the package definition include at least a first metadata object explicitly included in the package definition and at least a second metadata object that is dependent on the first metadata object and that is not explicitly included in the package definition;

computer code for validating through the platform, the one or more metadata objects;

computer code for, after the one or more metadata objects have been validated, making the one or more metadata objects accessible to a first end user system, wherein the one or more metadata objects are saved into a storage location accessible to the first end user system;

wherein the one or more metadata objects are conditionally modifiable by a user of the first end user system, based on a specification in the package definition by:

identifying in the specification of the package definition any of the saved metadata objects that are flagged by the developer, wherein the developer flags in the specification of the package definition which of the metadata objects are modifiable by the user of the first end user system,

providing a wizard for allowing modifications only to the saved metadata objects that are identified as being flagged by the developer,

wherein the developer flags metadata objects for which modifications are required by the user of the first end user system,

wherein the developer flags metadata objects for which modifications are optional by the user of the first end user system.

7. The computer program product recited in claim 6 , wherein the package definition includes a package identifier.

8. The computer program product recited in claim 6 , wherein the computer code for validating includes computer code for checking for missing components.

9. The computer program product recited in claim 6 , wherein the computer program product is operable such that the package definition is stored in a database.

10. The computer program product recited in claim 6 , wherein the computer program product is operable such that the validation is performed in response to a user request.

11. A system, comprising:

a processor for:

providing a platform, wherein the platform is a framework shared by a plurality of developers and end users,

creating, through the platform by one of the developers, a package definition that references a set of one or more metadata objects describing an application, wherein the one or more metadata objects referenced by the package definition include at least a first metadata object explicitly included in the package definition and at least a second metadata object that is dependent on the first metadata object and that is not explicitly included in the package definition,

validating through the platform, the one or more metadata objects,

after the one or more metadata objects have been validated, making the one or more metadata objects accessible to a first end user system, wherein the one or more metadata objects are saved into a storage location accessible to the first end user system;

wherein the one or more metadata objects are conditionally modifiable by a user of the first end user system, based on a specification in the package definition by:

identifying in the specification of the package definition any of the saved metadata objects that are flagged by the developer, wherein the developer flags in the specification of the package definition which of the metadata objects are modifiable by the user of the first end user system,

providing a wizard for allowing modifications only to the saved metadata objects that are identified as being flagged by the developer,

wherein the developer flags metadata objects for which modifications are required by the user of the first end user system,

wherein the developer flags metadata objects for which modifications are optional by the user of the first end user system.

12. The system recited in claim 11 , wherein the package definition includes a package identifier.

13. The system recited in claim 11 , wherein the system is operable such that the validating includes checking for missing components.

14. The system recited in claim 11 , wherein the system is operable such that the package definition is stored in a database.

15. The system recited in claim 11 , wherein the system is operable such that the validation is performed in response to a user request.

16. The method recited in claim 1 , wherein the platform is a framework shared by the plurality of developers and end users for allowing a plurality of different applications of the developers to run for the end users.

17. The method recited in claim 16 , wherein creation and allocation of the plurality of different applications by the developers for the end users is enabled using the platform, wherein the developers use the platform to create and allocate the different applications for the end users by:

creating, by a first developer, the package definition that references the set of one or more metadata objects describing the application, using the platform,

allocating the application to each of a plurality of first user systems, using the platform, for saving the set of one or more metadata objects into storage specific to each of the first user systems, wherein at least some of the first user systems are of a different type,

wherein the allocated application is executable using processes specific to the first user systems;

creating, by a second developer, a second package definition that references a second set of one or more metadata objects describing a second application, using the platform,

allocating the second application to each of a plurality of second user systems, using the platform, for saving the second set of one or more metadata objects into storage specific to each of the second user systems, wherein at least some of the second user systems are of a different type,

wherein the allocated second application is executable using processes specific to the second user systems;

wherein the first developer and the second developer are each one of a provider of the platform and a third party developer separate from the provider of the platform.

18. The method recited in claim 1 , wherein saving the one or more metadata objects into the storage location accessible to the first end user system includes saving into the storage location accessible to the first end user system both:

the at least one first metadata object explicitly included in the package definition, and

the at least one second metadata object that is dependent on the at least one first metadata object and that is not explicitly included in the package definition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2011
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 026239/0882 →
Continuity (3)
Continuation 11530394 · Sep 8, 2006
Provisional Application 60715749 · Sep 9, 2005
Related Publication 20110202508A1 · Aug 18, 2011