IP Library Granted Patent US 10,866,791
Granted Patent B2
US 10,866,791 · App. 16/547,486 · Granted Dec 15, 2020

Transforming non-Apex code to Apex code

Inventor: Qinghua Yang (Toronto, CA)
Assignee: salesforce.com, inc.
G06F8/51G06F8/315G06F8/40G06F8/425G06F8/436
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,866,791
App. No.
16/547,486
Granted
Dec 15, 2020
Kind
B2
Abstract

Source code of a first high-level language is received and analyzed. The source code of the first high-level language is transformed into source code of a second high-level language. The source code of the second high-level language is customized to a specific organization among a plurality of organizations that are hosted in a multitenant platform. At least a portion of the source code of the second high-level language is caused to be compiled into low-level code for execution in the multitenant platform.

Claims (38)

1. A computer-implemented method, comprising:

identifying, in source code of a first high-level programming language to be transformed into source code of a second high-level programming language, a first source code portion that uses a particular standard data object name to reference and access a particular standard data object;

transforming the first source code portion in the source code of the first high-level programming language to a second source code portion in the source code of the second high level programming language;

compiling the second source code portion in the source code of the second high-level programming language into a low-level code portion in low-level code, which when executed in a multitenant platform, causes runtime performance of:

identifying a specific organization from among a plurality of organizations that are hosted in the multitenant platform; and

referencing and accessing a particular organization-specific instance of the particular standard data object among a plurality of organization-specific instances of the particular standard data object, wherein the plurality of organization-specific instances of the particular standard data object is provided by the multitenant platform to the plurality of organizations that are hosted in the multitenant platform, and wherein the particular organization-specific instance of the particular standard data object is provided by the multitenant platform to the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

2. The computer-implemented method as recited in claim 1 , wherein the first source code portion in the source code of the first high-level programming language is free of access control source code statements with respect to the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language is generated to include access control source code statements that control user access to the particular organization-specific instance of the particular standard data object.

3. The computer-implemented method as recited in claim 1 , wherein the first source code portion in the source code of the first high-level programming language comprises a wildcard reference to all data fields in the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language determines a subset of data fields, accessible to a user at runtime, in the particular organization-specific instance of the particular standard data object.

4. The computer-implemented method as recited in claim 3 , wherein the subset of data fields includes at least one of: a standard data field as provided by the multitenant platform, or a custom data field defined by the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

5. The computer-implemented method as recited in claim 1 , wherein the first source code portion in the source code of the first high-level programming language comprises a database statement for executing a database operation with respect to the particular standard data object.

6. The computer-implemented method as recited in claim 1 , wherein the second source code portion in the source code of the second high-level programming language is generated to include source code statements to deploy a customer object in the specific organization from among the plurality of organizations that are hosted in the multitenant platform, and wherein the customer object is accessible to users in the specific organization from among the plurality of organizations that are hosted in the multitenant platform but not other users in other organizations from among the plurality of organizations that are hosted in the multitenant platform.

7. The computer-implemented method as recited in claim 1 , further comprising: generating bytecodes that enable high performance execution of operations and logics specified in the source code of the first high-level programming language.

8. One or more non-transitory computer readable media storing a program of instructions that is executable by a device to perform:

identifying, in source code of a first high-level programming language to be transformed into source code of a second high-level programming language, a first source code portion that uses a particular standard data object name to reference and access a particular standard data object;

transforming the first source code portion in the source code of the first high-level programming language to a second source code portion in the source code of the second high-level programming language;

compiling the second source code portion in the source code of the second high-level programming language into a low-level code portion in low-level code, which when executed in a multitenant platform, causes runtime performance of:

identifying a specific organization from among a plurality of organizations that are hosted in the multitenant platform; and

referencing and accessing a particular organization-specific instance of the particular standard data object among a plurality of organization-specific instances of the particular standard data object, wherein the plurality of organization-specific instances of the particular standard data object is provided by the multitenant platform to the plurality of organizations that are hosted in the multitenant platform, and wherein the particular organization-specific instance of the particular standard data object is provided by the multitenant platform to the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

9. The one or more non-transitory computer readable media as recited in claim 8 , wherein the first source code portion in the source code of the first high-level programming language is free of access control source code statements with respect to the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language is generated to include access control source code statements that control user access to the particular organization-specific instance of the particular standard data object.

10. The one or more non-transitory computer readable media as recited in claim 8 , wherein the first source code portion in the source code of the first high-level programming language comprises a wildcard reference to all data fields in the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language determines a subset of data fields, accessible to a user at runtime, in the particular organization-specific instance of the particular standard data object.

11. The one or more non-transitory computer readable media as recited in claim 10 , wherein the subset of data fields includes at least one of: a standard data field as provided by the multitenant platform, or a custom data field defined by the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

12. The one or more non-transitory computer readable media as recited in claim 8 , wherein the first source code portion in the source code of the first high-level programming language comprises a database statement for executing a database operation with respect to the particular standard data object.

13. The one or more non-transitory computer readable media as recited in claim 8 , wherein the second source code portion in the source code of the second high-level programming language is generated to include source code statements to deploy a customer object in the specific organization from among the plurality of organizations that are hosted in the multitenant platform, and wherein the customer object is accessible to users in the specific organization from among the plurality of organizations that are hosted in the multitenant platform but not other users in other organizations from among the plurality of organizations that are hosted in the multitenant platform.

14. The one or more non-transitory computer readable media as recited in claim 8 , wherein the program of instructions is executable by the device to further perform:

generating bytecodes that enable high performance execution of operations and logics specified in the source code of the first high-level programming language.

15. A system, comprising:

one or more computing processors; and

one or more non-transitory computer readable media storing a program of instructions that is executable by the one or more computing processors to perform:

identifying, in source code of a first high-level programming language to be transformed into source code of a second high-level programming language, a first source code portion that uses a particular standard data object name to reference and access a particular standard data object;

transforming the first source code portion in the source code of the first high-level programming language to a second source code portion in the source code of the second high-level programming language;

compiling the second source code portion in the source code of the second high-level programming language into a low-level code portion in low-level code, which when executed in a multitenant platform, causes runtime performance of:

identifying a specific organization from among a plurality of organizations that are hosted in the multitenant platform; and

referencing and accessing a particular organization-specific instance of the particular standard data object among a plurality of organization-specific instances of the particular standard data object, wherein the plurality of organization-specific instances of the particular standard data object is provided by the multitenant platform to the plurality of organizations that are hosted in the multitenant platform, and wherein the particular organization-specific instance of the particular standard data object is provided by the multitenant platform to the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

16. The system as recited in claim 15 , wherein the first source code portion in the source code of the first high-level programming language is free of access control source code statements with respect to the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language is generated to include access control source code statements that control user access to the particular organization-specific instance of the particular standard data object.

17. The system as recited in claim 15 , wherein the first source code portion in the source code of the first high-level programming language comprises a wildcard reference to all data fields in the particular standard data object, and wherein the second source code portion in the source code of the second high-level programming language determines a subset of data fields, accessible to a user at runtime, in the particular organization-specific instance of the particular standard data object.

18. The system as recited in claim 17 , wherein the subset of data fields includes at least one of: a standard data field as provided by the multitenant platform, or a custom data field defined by the specific organization from among the plurality of organizations that are hosted in the multitenant platform.

19. The system as recited in claim 15 , wherein the first source code portion in the source code of the first high-level programming language comprises a database statement for executing a database operation with respect to the particular standard data object.

20. The system as recited in claim 15 , wherein the second source code portion in the source code of the second high-level programming language is generated to include source code statements to deploy a customer object in the specific organization from among the plurality of organizations that are hosted in the multitenant platform, and wherein the customer object is accessible to users in the specific organization from among the plurality of organizations that are hosted in the multitenant platform but not other users in other organizations from among the plurality of organizations that are hosted in the multitenant platform.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0444 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2020
From: YANG, QINGHUA
To: SALESFORCE.COM, INC.
Reel/Frame 053498/0770 →
Continuity (2)
Continuation 15971117 · May 4, 2018
Related Publication 20190377561A1 · Dec 12, 2019