IP Library › Granted Patent US 10,572,274
Granted Patent B2
US 10,572,274 · App. 15/889,918 · Granted Feb 25, 2020

Cross platform custom functions

Inventors: Michael J Saunders (Bellevue, WA); Hoe Jin Kim (Redmond, WA); Zlatko Michailov (Redmond, WA); Hardik V. Shah (Seattle, WA); Shaofeng Zhu (Bellevue, WA); John Zhongqi Wang (Austin, TX); Chae Seong Lim (Issaquah, WA); Hailei Zhang (Redmond, WA); Sudheer Maremanda (Redmond, WA); Abhimanyu Sharma (Redmond, WA); Jay R. Rathi (Redmond, WA); Robert Ion Gavrila (Redmond, WA); Ehab Sobhy (Redmond, WA); Thomas A. Morrison (Redmond, WA); Jai Srinivasan (Bellevue, WA); Rolando Jimenez Salgado (Redmond, WA); Nicholas Weinandt (Redmond, WA); Alexandru Croicu (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/44526G06F8/61G06F8/76G06F9/44521
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,572,274
App. No.
15/889,918
Granted
Feb 25, 2020
Kind
B2
Abstract

Systems, methods, and computer-executable instructions for supporting custom functions within an application. An application add-in is received that includes a custom function and a custom function location. The application is available across multiple platforms. The custom function is also available across multiple platforms. The custom function is registered within the application using the custom function location. A request to invoke the custom function is received within the application A custom function implementation is downloaded from the custom function location. The custom function implementation is executed. A return value is received from the custom function implementation. The return value may be displayed within the application.

Claims (67)

1. A method for supporting custom functions within an application, the method comprising:

receiving an application add-in comprising a custom function, a custom function source location, and custom function metadata, the custom function metadata including a custom function name;

registering, within the application, the custom function, wherein registering includes storing the custom function metadata;

receiving a request to invoke the custom function within a cell of a first document using the custom function name in the cell within the application on a first platform;

downloading a custom function implementation from the custom function source location;

executing the custom function implementation a first time;

receiving a first return value from the custom function implementation;

automatically executing the custom function implementation a second time;

receiving a second return value from the custom function implementation from the execution of the custom function the second time; and

updating the cell of the first document with the second return value.

2. The method of claim 1 , further comprising updating the cell the first document based on the first return value after executing the custom function implementation the first time.

3. The method of claim 2 , wherein the custom function is a streamed custom function.

4. The method of claim 3 , further comprising receiving a state id along with the first return value.

5. The method of claim 4 , wherein the state id is passed to the custom function when the custom function is executed the second time.

6. The method of claim 1 , further comprising:

requesting, from the custom function source location, the custom function metadata, the custom function metadata further comprising a custom function parameter list;

receiving the custom function metadata;

caching the custom function metadata;

receiving an input comprising a partial completion of the custom function name;

determining a match between the partial completion of the custom function name and the custom function name; and

autocompleting the partial completion to the custom function name.

7. The method of claim 6 , wherein the custom function metadata is stored in a roaming profile, and wherein the method further comprises:

receiving a request to invoke the custom function within a first document within the application on a second platform different from the first platform;

downloading the custom function implementation from the custom function source location for the application on the second platform; and

executing the custom function implementation.

8. The method of claim 1 , further comprising:

receiving a request to invoke the custom function within a second document within the application; and

executing the custom function implementation within the second document.

9. The method of claim 1 , wherein the custom function implementation is in JavaScript.

10. The method of claim 1 , wherein the custom function is a batched custom function, and wherein the method further comprising:

determining the custom function is to be invoked two or more times for a plurality of portions of the first document, wherein the custom function comprises a parameter, and wherein each custom function to be invoked comprises a parameter value;

combining the parameter values based on the custom function being the batched custom function, wherein the combined parameter values are passed to the custom function implementation when executed, and wherein the custom function implementation is executed once.

11. The method of claim 10 , wherein the first return value comprises a plurality of return values corresponding to each of the invocations of the custom function, and wherein the method further comprising updating a plurality of portions of the first document based on the plurality of return values.

12. A system for supporting custom functions within an application, the system comprising:

one or more electronic processors configured to:

receive an application add-in comprising a custom function, a custom function source location, and custom function metadata, the custom function metadata including a custom function name;

register, within the application, the custom function, wherein registering includes storing the custom function metadata;

receive a request to invoke the custom function within a cell of a first document using the custom function name in the cell within the application on a first platform;

download a custom function implementation from the custom function source location;

execute the custom function implementation a first time;

receive a first return value from the custom function implementation;

automatically execute the custom function implementation, a second time;

receive a second return value from the custom function implementation from the execution of the custom function the second time; and

update the cell of the first document with the second return value.

13. The system of claim 12 , wherein the one or more processors are further configured to update the cell the first document based on the first return value after execution of the custom function implementation the first time.

14. The system of claim 13 , wherein the custom function is a streamed custom function.

15. The system of claim 14 , wherein the one or more processors are further configured to receive a state id along with the first return value.

16. The system of claim 15 , wherein the state id is passed to the custom function when the custom function implementation is executed the second time.

17. The system of claim 12 , wherein the one or more processors are further configured to:

request, from the custom function source location, the custom function metadata, the custom function metadata further comprising a custom function parameter list;

receive the custom function metadata;

cache the custom function metadata;

receive an input comprising a partial completion of the custom function name;

determine a match between the partial completion of the custom function name and the custom function name; and

autocomplete the partial completion to the custom function name.

18. A computer-readable storage media storing computer-executable instructions, which when executed by at least one processor, configure to the at least one processor:

receive an application add-in comprising a custom function, a custom function source location, and custom function metadata, the custom function metadata including a custom function name;

register, within the application, the custom function, wherein registering includes storing the custom function metadata;

receive a request to invoke the custom function within a cell of a first document using the custom function name in the cell within the application on a first platform;

download a custom function implementation from the custom function source location;

execute the custom function implementation a first time;

receive a first return value from the custom function implementation;

automatically execute the custom function implementation, a second time;

receive a second return value from the custom function implementation from the execution of the custom function the second time; and

update the cell of the first document with the second return value.

19. The computer-readable storage media of claim 18 , wherein the instructions further comprise instructions to update the cell the first document based on the first return value after execution of the custom function implementation the first time.

20. The computer-readable storage media of claim 19 , wherein the custom function is a streamed custom function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2018
From: SAUNDERS, MICHAEL J; KIM, HOE JIN; MICHAILOV, ZLATKO; SHAH, HARDIK V.; ZHU, SHAOFENG; WANG, JOHN ZHONGQI; LIM, CHAE SEONG; ZHANG, HAILEI; MAREMANDA, SUDHEER; SHARMA, ABHIMANYU; RATHI, JAY R.; GAVRILA, ROBERT ION; SOBHY, EHAB; MORRISON, THOMAS A.; SRINIVASAN, JAI; SALGADO, ROLANDO JIMENEZ; WEINANDT, NICHOLAS; CROICU, ALEXANDRU
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045938/0413 →
Continuity (2)
Provisional Application 62562142 · Sep 22, 2017
Related Publication 20190095226A1 · Mar 28, 2019