6 Use-Cases For The Power Apps App Formulas Property (Named Formulas)
6 Use-Cases For The Power Apps App Formulas Property (Named Formulas) Posted by - Matthew Devaney on - September 17, 2023 37 Comments Power Apps named formul...
- Published
- Reading time
- 6 min read
Before you start
Is this guide for you?
- Best entry point
- Power Apps
- Time investment
- 6 min read
Imported reference from Matthew Devaney's blog for learning purposes. Original: https://www.matthewdevaney.com/6-use-cases-for-the-power-apps-app-formulas-property-named-formulas/. Author: Matthew Devaney.
6 Use-Cases For The Power Apps App Formulas Property (Named Formulas) Posted by - Matthew Devaney on - September 17, 2023 37 Comments
Power Apps named formulas enable us to use the same app logic in several different places. Unlike a variable, named formulas do not store values in memory. They recalculate each time they are referenced. Named formulas ensure the most current value is always available and up-to-date and their definition can only be managed in one-central location. In this article, I will explain the benefits of using Power Apps named formulas and show you the best ways to use them. Table of Contents 1. Pre-Filtering SharePoint Lists 2. Gathering Extended User Profile Data
3. Checking Security Roles For The Current User
4. Obtaining URL Parameters And Setting Default Values
5. Making Simpler References To Environment Variables 6. App Theming Values (Colors & Fonts) 1. Pre-Filtering SharePoint Lists
Create a Power Apps named formula when a SharePoint list has a common set of filters used in many places. In the example below, the Service Vehicles SharePoint list has several trucks which are either active (in service) or inactive (not in service). Service Vehicles SharePoint List: ID Title Active 1 Service Truck 001 No 2 Service Truck 002 Yes 3 Service Truck 003 No 4 Service Truck 004 Yes 5 Service Truck 005 Yes
Suppose we only the active vehicles to show in Power Apps. Therefore, we write a named formula in the App Formulas property like this: // FILTER ACTIVE SERVICE VEHICLES fxServiceVehiclesActive = Filter(
'Service Vehicles' , Active.Value = "Yes" ) Code language: JavaScript ( javascript )
Now we can use our named formula in the app. Write fxServiceVehiclesActive in the Items property of a gallery and only these rows will appear. ID Title Active 2 Service Truck 002 Yes 4 Service Truck 004 Yes 5 Service Truck 005 Yes 2. Gathering Extended User Profile Data
Named formulas may be used to hold constants – a value that cannot be changed when the app is in play mode. User profile data for the current app user is an example of a constant.
We can use the Office365Users connector to get the full account details for an app user and reference it in a named formula. Whereas the User function only retrieves the account’s full name, email and image.
To do this, add the Office365Users connector to the app.
Then use these named formulas in the App Formulas property to prevent multiple calls to the Office365Users API. Once the function executes its result will be cached. // USER PROFILE INFO
fxCurrentUser = Office365Users.MyProfile(); fxCurrentUserPhoto = If( Office365Users.UserPhotoMetadata(fxCurrentUser.UserPrincipalName).HasPhoto, Office365Users.UserPhotoV2(fxCurrentUser.UserPrincipalName) ); Code language: JavaScript ( javascript )
3. Checking Security Roles For The Current User
An app design might have require us to give a user with the custom security role ” Contoso Manager “security role access to a hidden screen. To get the security roles applied add these Dataverse Users and Security Roles tables to the app.
The write this code in the app Formulas property. // SECURITY ROLES
fxSecurityRoles = LookUp( Users, domainname = User().Email ). 'Security Roles (systemuserroles_association)' .Name; fxIsUserManager = "Contoso Manager" in fxSecurityRoles.Name; Code language: JavaScript ( javascript )
Let’s supposed the named formula fxSecurityRoles returns these values. Name Basic User Contoso Manager Environment Maker
We can use the subsequent named formula fxIsUserManager to check if the current user is a manager. Since “Contoso Manager” was found in the user’s security roles the named formula returns true. true Code language: JavaScript ( javascript )
4. Obtaining URL Parameters And Setting Default Values
URL parameters can be passed into PowerApps and captured using the Param function . It is useful to store them in named formulas as constants because we can provide default values for when the parameter is missing.
Assume we wrote the following code in the Power Apps app Formulas property. // URL PARAMETERS fxUrlParameter = { RecordId : Param( "recordid" ),
LaunchSource : Coalesce(Param( "launchsource" ), "Unknown" ),
DebugMode : And( Not(IsBlank(Param( "debugmode" ))), Lower(Param( "DebugMode" ))= "true" ) } Code language: JavaScript ( javascript )
Then we used this URL to access the app:
https: //apps.powerapps.com/play/e/89c16fac-7c8a-e73a-bdad-f06eda01df1b/a/407a9220-3548-4b2d-9a1c-e3fda1c6b3cc?tenantId=f1b8b509-50a4-4a5c-8e48-bf3d3e7c10ed&sourcetime=2023-08-13%2001%3A28%3A13Z&recordid=1 Code language: JavaScript ( javascript )
The named formula fxUrlParameter would return these values: fxUrlParameters.RecordId =1
fxUrlParameters.LaunchSource = “Unknown” fxUrlParameters.DebugMode = false
5. Making Simpler References To Environment Variables
Retrieving environment variables values is absurdly obtuse. We can use named formulas to abstract away the lengthy code needed to do it and use a much shorter reference instead.
Add the Dataverse tables called Environment Variable Definitions and Environment Variable Values to the app.
Then write this code in the App Formulas property. // ENVIRONMENT VARIABLES fxEnvironmentVariable = { AdminEmail : LookUp( 'Environment Variable Values' ,
'Environment Variable Definition' . 'Display Name' = "Admin Email" ).Value, CompanyName : LookUp( 'Environment Variable Values' ,
'Environment Variable Definition' . 'Display Name' = "Company Name" ).Value, EnvironmentName : LookUp( 'Environment Variable Values' ,
'Environment Variable Definition' . 'Display Name' = "Environment Name" ).Value }; Code language: JavaScript ( javascript )
Now we are able to get the AdminEmail environment variable by simply typing fxEnvironmentVariable .AdminEmail Code language: CSS ( css )
6. Configuring App Theming Values (Colors & Fonts)
Named formulas make referencing theming values more convenient because we can type a friendly-text name as opposed to a color code. The fxColor formula holds a set of colors to be used in the app while fxFont formula defines fonts and text sizes. // COLORS fxColor = { // Named Color Values Danger : ColorValue( "#dc3545" ), Info : ColorValue( "#0dcaf0" ), Primary : ColorValue( "#0d6efd" ), Secondary : ColorValue( "#6c757d" ), Success : ColorValue( "#198754" ), Warning : ColorValue( "#ffc107" ), // Default Colors Values Blue : ColorValue( "#0d6efd" ), Indigo : ColorValue( "#6610f2" ), Purple : ColorValue( "#6f42c1" ), Pink : ColorValue( "#d63384" ), Red : ColorValue( "#dc3545" ), Orange : ColorValue( "#fd7e14" ), Yellow : ColorValue( "#ffc107" ), Green : ColorValue( "#198754" ), Teal : ColorValue( "#20c997" ), Cyan : ColorValue( "#0dcaf0" ), White : ColorValue( "#ffffff" ), Grey : ColorValue( "#6c757d" ), GreyDark : ColorValue( "#343a40" ), // Grey-Shade Color Values Grey100 : ColorValue( "#f8f9fa" ), Grey200 : ColorValue( "#e9ecef" ), Grey300 : ColorValue( "#dee2e6" ), Grey400 : ColorValue( "#ced4da" ), Grey500 : ColorValue( "#adb5bd" ), Grey600 : ColorValue( "#6c757d" ), Grey700 : ColorValue( "495057" ), Grey800 : ColorValue( "#343a40" ), Grey900 : ColorValue( "#212529" ) }; // FONTS fxFont = { Heading : Font. 'Lato Black' , Body : Font.Lato, Size : { Body : 12 , Subtitle : 14 , Title : 16 }, LineHeight : 1.5 } Code language: JavaScript ( javascript ) Did You Enjoy This Article? 😺
Subscribe to get new Copilot Studio articles sent to your inbox each week for FREE Enter your email address Sign Me Up Questions?
If you have any questions or feedback about 6 Use-Cases For The PowerApps App Formulas Property (Named Formulas) please leave a message in the comments section below. You can post using your email address and are not required to create an account to join the discussion. Matthew Devaney M365 Copilot Power Apps
How To Create Copilot Custom UI Widgets In Power Apps
Tagged
Power Apps
Have a Microsoft 365 topic idea?
Share article suggestions, community session ideas, corrections, or real-world scenarios for future nextM365 learning notes.
Keep learning Microsoft 365
Explore more practical guides for SharePoint, Power Platform, Copilot Studio, migration, automation, governance, and security.
Continue learning
Related tutorials
Related questions
Related comparisons
Next action