IP Library › Granted Patent US 11,256,743
Granted Patent B2
US 11,256,743 · App. 15/868,974 · Granted Feb 22, 2022

Intermixing literal text and formulas in workflow steps

Inventors: Stephen Siciliano (Bellevue, WA); Charles W. Lamanna (Bellevue, WA); You Tang (Bothell, WA); Nitish Kumar Meena (Seattle, WA); Jeffrey S. Hollan (Snoqualmie, WA); Balasubramanian Shyamsundar (Redmond, WA); Priti Sambandam (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/90G06F7/02G06F8/34G06F16/2474G06F17/10G06F40/10
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,256,743
App. No.
15/868,974
Granted
Feb 22, 2022
Kind
B2
Abstract

Methods, systems, apparatuses, and computer program products are provided for intermixing expressions with other types of data in input controls. A system includes a processor and a memory that stores program code configured to be executed by the processor. The program code comprises a step configuration interface configured to receive, via a same input control, an expression as a first segment and a different type of data from an expression as a second segment. The program code further comprises a logic generator configured to generate a serialized representation that includes a serialized version of the first segment and a serialized version of the second segment.

Claims (60)

1. A workflow development system, comprising:

a processor; and

a memory that stores program code configured to be executed by the processor, the program code comprising:

a step configuration interface configured to

receive expression information and at least one further data segment as an input via a same graphical user interface (GUI) input control, wherein the GUI input control is an input text box, the received input including:

a first segment that includes an expression having a first data type, the expression comprising at least one of a type of expression, an equation, dynamic content, or a syntax used to express a mathematical or logical relationship, and

a second segment having a second data type different from the first data type; and

display the first segment and the second segment side-by-side in the input text box; and

a logic generator configured to

generate a serialized representation of the received input configured to be evaluated during runtime that includes

a serialized version of the first segment and

a serialized version of the second segment.

2. The system of claim 1 , wherein the step configuration interface comprises:

an expression editor configured to provide an expression configuration control configured to receive a definition of the expression for the first segment, and to assign function as the first data type in response to providing the expression configuration control.

3. The system of claim 1 , wherein the step configuration interface comprises:

an expression detector configured to automatically detect that the first segment contains the expression and to assign function as the first data type based on the automatic detection.

4. The system of claim 1 , wherein the program code further comprises:

an execution engine configured to, at runtime, generate a result of the expression based on received input data.

5. The system of claim 1 , wherein the input control has an output data type, and the logic generator comprises:

an expression serializer configured to generate the serialized version of the first segment, the expression serializer configured to wrap the first segment with the output data type of the input control in response to determining that a data type of an output value of the expression does not match the output data type of the input control.

6. The system of claim 1 , wherein the serialized version of the first segment comprises program code for the expression and indicates function as the first data type.

7. The system of claim 5 , wherein the step configuration interface is configured to load the serialized representation, the step configuration interface comprising:

an expression deserializer configured to deserialize the serialized version of the first segment; and

the step configuration interface is configured to refill the input control with the first segment and the second segment.

8. A method in a workflow development system in a computing device, comprising:

receiving, via a same graphical user interface (GUI) input control that is an input text box, expression information and at least one further data segment as an input, the received input including a first segment that includes an expression having a first data type and a second segment having a second data type different from the first data type, the expression comprising at least one of a type of expression, an equation, dynamic content, or a syntax used to express a mathematical or logical relationship;

displaying the first segment and the second segment side-by-side in the input text box; and

generating a serialized representation of the received input configured to be evaluated during runtime that includes a serialized version of the first segment and a serialized version of the second segment.

9. The method of claim 8 , wherein said receiving comprises:

providing an expression configuration control configured to receive a definition of the expression for the first segment; and

assigning function as the first data type in response to providing the expression configuration control.

10. The method of claim 8 , wherein said receiving comprises:

automatically detecting the first segment contains the expression; and

assigning function as the first data type based on the automatic detection.

11. The method of claim 8 , further comprising:

executing the expression at runtime based on received input data to generate a result.

12. The method of claim 8 , wherein the input control has an output data type and the method further comprises:

determining if a data type of an output value of the expression matches the output data type of the input control; and

in response to a determination that the data type of the output value of the expression does not match the output data type of the input control, wrapping the first segment with the output data type of the input control in the serialized version of the first segment.

13. The method of claim 8 , wherein the serialized version of the first segment comprises program code for the expression and indicates function as the first data type.

14. The method of claim 12 , further comprising:

loading the serialized representation;

deserializing the serialized version of the first segment; and

re-filling the input control with the first segment and the second segment.

15. A computer-readable medium having computer program logic recorded thereon that when executed by processor causes the processor to perform a method in a workflow development system, the method comprising:

receiving, via a same graphical user interface (GUI) input control that is an input text box, expression information and at least one further data segment as an input, the received input including a first segment that includes an expression having a first data type and a second segment having a second data type different from the first data type, the expression comprising at least one of a type of expression, an equation, dynamic content, or a syntax used to express a mathematical or logical relationship;

displaying the first segment and the second segment side-by-side in the input text box; and

generating a serialized representation of the received input configured to be evaluated during runtime that includes a serialized version of the first segment and a serialized version of the second segment.

16. The computer-readable medium of claim 15 , wherein said receiving comprises:

providing an expression configuration control configured to receive a definition of the expression for the first segment; and

assigning function as the first data type in response to providing the expression configuration control.

17. The computer-readable medium of claim 15 , wherein said receiving comprises:

automatically detecting the first segment contains the expression; and

assigning function as the first data type based on the automatic detection.

18. The computer-readable medium of claim 15 , wherein the method further comprises:

executing the expression at runtime based on received input data to generate a result.

19. The computer-readable medium of claim 15 , wherein the input control has an output data type and the method further comprises:

determining if a data type of an output value of the expression matches the output data type of the input control; and

in response to a determination that the data type of the output value of the expression does not match the output data type of the input control, wrapping the first segment with the output data type of the input control in the serialized version of the first segment.

20. The computer-readable medium of claim 15 , wherein the serialized version of the first segment comprises program code for the expression and indicates function as the first data type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2018
From: SICILIANO, STEPHEN; LAMANNA, CHARLES W.; TANG, YOU; MEENA, NITISH KUMAR; HOLLAN, JEFFREY S.; SHYAMSUNDAR, BALASUBRAMANIAN; SAMBANDAM, PRITI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044694/0966 →
Continuity (2)
Provisional Application 62479282 · Mar 30, 2017
Related Publication 20180285476A1 · Oct 4, 2018