Today, the Apps team is thrilled to announce the GA of Expressions. Since we released Apps in December of 2020 you’ve been building apps with increasing sophistication and shared two key pieces of feedback: (1) Some of the data binding patterns made it difficult to maintain/extend apps with dozens of pages and hundreds of controls, and (2) app authors shouldn’t need to create a process for every computation or data transformation.
Expressions addresses these critical pieces of feedback head-on:
Expressions rely on declarative patterns like those used in Excel to aid users in the definition of control behavior. By using control properties as the single source of truth for that control’s behavior, it makes it much easier to understand how it reacts to changes to other controls or data.
To see how much easier this really is, let’s take a look at a common scenario. Say we only want to enable a textbox when a toggle is checked in this Simple Form:
Before expressions where available, you’d have to construct elaborate If/else rules with multiple SetValue rules in their conditions. Not only was this difficult to author, it was also difficult to know what other controls might interact with the disabled property on the textbox and alter the functionality of your app.
A single-line expression for the Disabled property of the textbox replaces all 3 of these rules and their 7 field configurations:
Not only is it easier to author, it’s also quicker to understand (“The textbox is disabled when the toggle is not enabled”). Expressions also makes it easier to extend. For example, you could quickly add another condition here to enable the textbox if the toggle was enabled OR a process output meets a condition.
Before expressions, transforming data and creating static data was only possible through the use of processes, forcing App Creators to use RPA for trivial operations like creating a dropdown with fixed values or filtering a table based on a value of another app control.
Expressions also allows users to:
- Define static in-app data
- Perform data transformation
- Evaluate mathematical computations in Realtime
- Create dynamic runtime experiences, even when complex logic is required
All without the aid of a process, making runtime faster and allowing app authors to use processes for what they do best.
Expressions unlock a whole new set of capabilities in Apps. Because of their nature, you’ll probably do things that we haven’t even thought of yet, but here are some of the most common use cases that we’ve seen:
- Input Validation
- Progressive disclosure
- In-app mathematical operations (eg: value calculator)
- Static Lists
We have tons of great enhancements planned to make expressions even more powerful. Here are a few, just as a sneak peek
- Date + Time functions
- Filtering and Sorting tabular data
- Using expressions on more control properties
While expressions is GA, this is just the beginning of its journey. We’d love to get your feedback on what Functions to prioritize and how we can continue to improve the authoring experience.
If you run into any issues, try to search the UiPath Apps category of the forum, or if you can’t find an existing post create a New Topic.