- Getting Started
- Demo apps
- How To
- Build Your First App
- Build a Mobile-Friendly App
- General User Experience Guidelines
- Use Master Detail View
- Use Document Viewer
- Use Count With Choice Set Values
- Use Selected Values From a Table
- Embed Apps
- Embed Maps
- Hide Containers Using a Button
- Include MailTo Links
- Include Star Ratings
- Set External Context
- Work With Data Source and Value Bind
- Use the Send Interim Result Activity
- Public Apps
- Notifications
- Using VB Expressions
- Overview
- Limitations
- The Expression editor
- The Query builder
- Migrating legacy apps to VB expressions
- Legacy versus VB expressions
- Useful VB functions
- Custom VB functions
- Designing your App
- Events and Rules
- Rule: If-Then-Else
- Rule: Open a Page
- Rule: Open URL
- Rule: Close Pop-Over/Bottom Sheet
- Rule: Show Message
- Rule: Show/Hide Spinner
- Rule: Set Values
- Rule: Start Process
- Rule: Upload File to Storage Bucket
- Rule: Get File From Storage Bucket
- Rule: Reset Values
- Rule: Create/Update Entity Record
- Rule: Delete Entity Record
- Rule: Add to Queue
- Function: And, Or, Not
- Function: Concat
- Function: Contains
- Function: Count
- Function: EndsWith
- Function: If
- Function: IsBlank
- Function: Guid
- Function: Length
- Function: List
- Function: StartsWith
- Function: Sum
- Function: Sort
- Function: Now
- Function: Today
- Function: Time
- Function: Year
- Function: Month
- Function: Day
- Function: Hour
- Function: Minute
- Function: New
- Function: Lookup
- Function: Filter
- Leveraging RPA in your App
- Leveraging Entities in Your App
- Leveraging Queues in Your App
- Leveraging Media in your app
- Leveraging Actions in your app
- Leveraging Connections in your apps
- Application Lifecycle Management (ALM)
- UiPath First-Party Apps
- Basic Troubleshooting Guide
![](https://docs.uipath.com/_next/static/media/grid.05ebd128.png?w=3840&%3Bq=100)
Migrating legacy apps to VB expressions
A legacy app is an app that has been created before the introduction of VB expression language, or that uses the legacy expression language.
The migration process takes the legacy app as input and generates a copy of the legacy app designed with VB expressions.
To migrate a legacy app to VB expressions:
-
Open the desired legacy app.
-
On the top toolbar, click Migrate to VB. A pop-up message informs you about the outcome of the migration.
-
Select Continue to migrate. A toast message informs you about the migration progress.
-
Check the notification panel to see if the app was migrated successfully.
The migrated app is displayed on the Build tab, with the following name syntax: app_name + migration timestamp.
Once migrated, the new VB app might display errors. These errors are caused by the incompatibility between legacy expressions and VB.
To make your app functional, go through each error and manually adjust the expression to meet the VB requirements.
The following list summarizes which Apps capabilities are migrated from legacy to the VB expression language. Not all capabilities are persisted, and they may need manual corrections. To help you rewrite the legacy expression in VB language, the migration algorithm provides a guiding string.
All app pages, controls, and layouts built within the legacy expression language are migrated to their related instance in VB expressions.
A couple of controls and elements are migrated differently:
- File picker
- Migrated as File downloader, if the File picker control is used as
Download only.
Otherwise, the File picker control is migrated as File uploader.
- Value binding
-
Value binding is not supported in VB expressions.
- Data context
- Data context is not supported in VB expressions.
The DataSource property is migrated as blank for several controls, such as Table, Dropdown, or List. Use the Query Builder to rebuild the expression.
All literal expressions are fully migrated. A literal expression is a value directly inputted by users.
Lookup
, are replaced by a
string that serves as guidance in building the new VB expression.
All integrations, such as Processes, Queues, or Storage Buckets, are fully migrated.
Errors might occur if an integration name does not respect for VB elements. The migration algorithm renames the element on your behalf.
During migration, variables are set to string data types, regardless of their original data type.
Errors might occur for variables that have other data types other than string assigned. In these cases, manual corrections are required.
Make sure the variable names respect for VB elements.
A direct binding is a link between two single elements only. For example, in a legacy app, the Value binding property of a Textbox control, or the Storage Bucket field of the Upload file to storage bucket rule.
Cross-page bindings are deprecated in VB expression language, therefore these types of bindings are not migrated. An error is displayed to elements that have cross-page binding, with a guiding string to help you rewrite the expression.
All simple expressions on control properties, such as Required, Readonly, or Hidden, are migrated.
All rules that contain direct bindings are migrated. Complex expressions are removed or converted to a guiding string.
The following image compares the configuration for the Set values rule before (picture 1) and after (picture 2) migrating to VB expressions:
- Create/Update entity
- The rule is migrated as the Create entity rule. Expressions in
this rule are not preserved, therefore you need to reconfigure the rule.
- Set values
-
If the rule has multiple items in the Items To Set field, they are migrated as separate Set values rules.
Expressions in this rule are replaced by strings that serve as guidance in building the new VB expression.
- If/else
-
The rule is migrated without conditions.