IP Library Granted Patent US 11,620,124
Granted Patent B2
US 11,620,124 · App. 17/302,105 · Granted Apr 4, 2023

System and method for flow runtime versioning

Inventors: Saravanan Adaikkalavan (Fremont, CA); Samuel William Bailey (Cardiff, GB); William C. Eidson (Palo Alto, CA); Hugh Cockburn (San Francisco, CA); Krishna Kumar (San Francisco, CA); Hao Wu (Hayward, CA); Tim Peng (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F8/656G06F9/445
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 11,620,124
App. No.
17/302,105
Granted
Apr 4, 2023
Kind
B2
Abstract

Described is a method in a cloud-based system for implementing changes to flow engine software that executes user-specific flows for a plurality of users. The method includes: receiving a request to load and execute a user-specific flow; identifying an API version identifier for the user-specific flow; loading the user-specific flow; determining whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier; and executing the user-specific flow using the flow engine software with the software change when it is determined, based on the API version identifier, that the software change to the flow engine software should be applied.

Claims (57)

1. A method in a cloud-based system for implementing changes to flow engine software that executes user-specific flows for a plurality of users, the method comprising:

receiving a request to load and execute a user-specific flow;

identifying an API version identifier for the user-specific flow, the identifying comprising:

determining whether a process type for the user-specific flow was opted-in for flow runtime versioning and whether an identifier for the user-specific flow had been saved;

assigning a default value as the API version identifier to the user-specific flow when either the process type for the user-specific flow was not previously opted-in for flow runtime versioning or an identifier for the user-specific flow had not been previously saved; and

assigning the saved identifier as the API version identifier for the user-specific flow when the process type for the user-specific flow was opted-in for flow runtime versioning and when the identifier for the user-specific flow had been previously saved;

loading the user-specific flow;

determining whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier; and

executing the user-specific flow using the flow engine software with the software change when it is determined, based on the API version identifier, that the software change to the flow engine software should be applied.

2. The method of claim 1 , wherein the determining whether a software change to the flow engine software should be applied comprises:

determining for the software change whether the API version identifier for the user-specific flow has a value that is equal to or greater than an API version value necessary for the execution engine to apply the software change to the flow engine software.

3. The method of claim 2 , wherein the executing the user-specific flow comprises:

executing the user-specific flow using the execution engine with the software change when the API version identifier for the user-specific flow has a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software; and

executing the user-specific flow by the execution engine without the software change when the API version identifier for the user-specific flow does not have a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software.

4. The method of claim 1 , wherein the cloud-based system comprises a server and a flow engine.

5. The method of claim 4 , wherein the server is configured to identify the API version identifier for the user-specific flow and the flow engine is configured to determine whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier.

6. The method of claim 4 , further comprising:

receiving, by the server, a request to save the user-specific flow;

determining, by the server, whether a process type for the user-specific flow was opted-in for flow runtime versioning; and

saving, by the server, the identifier for the user-specific flow when the user-specific flow was opted-in for flow runtime versioning.

7. A cloud-based system configured by a processor to implement changes to flow engine software that executes user-specific flows for a plurality of users, the system comprising a controller configured to:

receive a user request to load and execute a user-specific flow; identify an API version identifier for the user-specific flow, wherein to identify an API version identifier for the user-specific flow, the controller is configured to:

determine whether a process type for the user-specific flow was opted-in for flow runtime versioning and whether an identifier for the user-specific flow had been saved;

assign a default value as the API version identifier to the user-specific flow when either the process type for the user-specific flow was not previously opted-in for flow runtime versioning or an identifier for the user-specific flow had not been previously saved; and

assign the saved identifier as the API version identifier for the user-specific flow when the process type for the user-specific flow was opted-in for flow runtime versioning and when the identifier for the user-specific flow had been previously saved;

load the user-specific flow;

determine whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier; and

execute the user-specific flow using the flow engine software with the software change when it is determined, based on the API version identifier, that the software change to the flow engine software should be applied.

8. The cloud-based system of claim 7 , wherein to determine whether a software change to the flow engine software should be applied the controller is configured to:

determine for the software change whether the API version identifier for the user-specific flow has a value that is equal to or greater than an API version value necessary for the execution engine to apply the software change to the flow engine software.

9. The cloud-based system of claim 8 , wherein to execute the user-specific flow the controller is configured to:

execute the user-specific flow using the execution engine with the software change when the API version identifier for the user-specific flow has a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software; and

execute the user-specific flow by the execution engine without the software change when the API version identifier for the user-specific flow does not have a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software.

10. The cloud-based system of claim 7 , further comprising a server and a flow engine.

11. The cloud-based system of claim 10 , wherein the server is configured to identify the API version identifier for the user-specific flow and the flow engine is configured to determine whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier.

12. The cloud-based system of claim 10 , wherein the server is configured to:

receive a user request to save the user-specific flow;

determine whether a process type for the user-specific flow was opted-in for flow runtime versioning; and

save the identifier for the user-specific flow when the user-specific flow was opted-in for flow runtime versioning.

13. A non-transitory computer readable medium encoded with programming instructions configurable to cause a controller at a cloud-based platform computing system to perform a method, the method comprising:

receiving a request to load and execute a user-specific flow; identifying an API version identifier for the user-specific flow, the identifying comprising:

determining whether a process type for the user-specific flow was opted-in for flow runtime versioning and whether an identifier for the user-specific flow had been saved;

assigning a default value as the API version identifier to the user-specific flow when either the process type for the user-specific flow was not previously opted-in for flow runtime versioning or an identifier for the user-specific flow had not been previously saved; and

assigning the saved identifier as the API version identifier for the user-specific flow when the process type for the user-specific flow was opted-in for flow runtime versioning and when the identifier for the user-specific flow had been previously saved;

loading the user-specific flow;

determining whether a software change to flow engine software should be applied when executing the user-specific flow based on the API version identifier; and

executing the user-specific flow using the flow engine software with the software change when it is determined, based on the API version identifier, that the software change to the flow engine software should be applied.

14. The non-transitory computer readable medium of claim 13 , wherein the determining whether a software change to the flow engine software should be applied comprises:

determining for the software change whether the API version identifier for the user-specific flow has a value that is equal to or greater than an API version value necessary for the execution engine to apply the software change to the flow engine software.

15. The non-transitory computer readable medium of claim 14 , wherein the executing the user-specific flow comprises:

executing the user-specific flow using the execution engine with the software change when the API version identifier for the user-specific flow has a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software; and

executing the user-specific flow by the execution engine without the software change when the API version identifier for the user-specific flow does not have a value that is equal to or greater than the API version value necessary for the execution engine to apply the software change to the flow engine software.

16. The non-transitory computer readable medium of claim 13 , wherein the cloud-based platform computing system comprises a server and a flow engine, and wherein the server is configured to identify the API version identifier for the user-specific flow and the flow engine is configured to determine whether a software change to the flow engine software should be applied when executing the user-specific flow based on the API version identifier.

17. The non-transitory computer readable medium of claim 16 , wherein the method further comprises:

receiving, by the server, a request to save the user-specific flow;

determining, by the server, whether a process type for the user-specific flow was opted-in for flow runtime versioning; and

saving, by the server, the identifier for the user-specific flow when the user-specific flow was opted-in for flow runtime versioning.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0529 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2021
From: ADAIKKALAVAN, SARAVANAN; BAILEY, SAMUEL WILLIAM; EIDSON, WILLIAM C.; COCKBURN, HUGH; KUMAR, KRISHNA; WU, HAO; PENG, TIM
To: SALESFORCE.COM, INC.
Reel/Frame 056021/0950 →
Continuity (1)
Related Publication 20220342658A1 · Oct 27, 2022