Power Fx: Column names escape double quotes
With Studio version 3.24042, rolling out to Preview this week, we are making a small syntax change to how column names are specified in some function arguments. Today they need to be wrapped in double quotes as a text string, but tomorrow they will not. The functionality of these functions is not changing in any way. We will automatically update the syntax in existing apps to reflect the new syntax – all existing apps will continue to operate as they do today. The change makes these functions consistent with other uses of column names, easier to use by no longer requiring logical names, and consistent with other Power Fx 1.0 hosts such as Copilot Studio, Power Automate Desktop, and Cards that have been using this new syntax for the last year.
The impacted functions are:
For example, today, this formula adds a Miles column to a table, calculated from the Kilometers column:
AddColumns( Distances, "Miles", Kilometers * 0.6214 )
Tomorrow, write the formula with the new column name just as you would an existing column of the table, without double quotes:
AddColumns( Distances, Miles, Kilometers * 0.6214 )
It’s a subtle, but important difference. The use of a text string gave the impression that this name could be dynamic when it could not which led to maker confusion. It was inconsistent with other places where columns are used and defined, such as in the calculation at the end of the formula above and in a record definition.
This change also enables you to use display names. If the Contacts table is in Dataverse, you would have previously needed to use logical names to reference the columns:
Search( Contacts, TextInput1.Text, "cr43e_firstname", "cr43e_lastname" )
No longer, this can now be written much more elegantly as:
Search( Contacts, TextInput1.Text, 'First Name', 'Last Name' )
As shown here, use single quotes to insert a space or other special character in the name, as you would with variable names.
But wait… Aren’t we going to break all the existing apps in the world? Power Apps has a mechanism to update app formulas automatically. This change is only a syntax change, the behavior of these functions does not change, making it perfect to use this mechanism. Your apps will be automatically updated to the new syntax when they are loaded into Studio at or after version 3.24042. In general, you don’t need to do anything except to start using the new syntax for new formulas.
This is a part of Power Apps moving to Power Fx 1.0 that we could do without needing a feature switch. There are two more functions, SortByColumns and Validate that will be getting similar treatment, but since those could introduce a breaking change we decided to do that under the upcoming Power Fx 1.0 compatibility switch.
More examples:
DropColumns( Distances, "Kilometers" ) // before DropColumns( Distances, Kilometers ) // after
RenameColumns( Distances, "Kilometers", "Km" ) // before RenameColumns( Distances, Kilometers, Km ) // after
ShowColumns( Distances, "Kilometers" ) // before ShowColumns( Distances, Kilometers) // after
GroupBy( Sales, "State", "Remainder" ) // before GroupBy( Sales, State, Remainder ) // after
Ungroup( GroupedSales, "Remainder" ) // before Ungroup( GroupedSales, Remainder ) // after
DataSourceInfo( IceCream, DataSourceInfo.Required, "Flavor" ) // before DataSourceInfo( IceCream, DataSourceInfo.Required, Flavor ) // after
If you have any concerns or questions, please leave them in the comments for this blog post. Thanks!