November 19, 2024

Power Apps: Delegable Functions Reference

By default, PowerApps tries to deal with the information in the client. For a small number of records, the client can quickly deal with operations like Sort or Filter without issues, but as the data increases, we could end up with crashes and slow apps, especially for slow networks. To improve performance, PowerApps enables the delegation of some operations to compatible data source called delegable functions. PowerApps only fetches from the data source the data that it needs to show. Instead of the full data set. You can find the full Microsoft’s reference explaining this concept.

I’ll go into further detail explaining workarounds for non-delegable functions in Delegation Issue and Workarounds and teach how to take advantage of delegable functions fully. Be aware that, for non-delegable functions, there is a limit of records fetched of 500 that you can increase up to 2000.

Delegable Data Sources

There are a lot of connectors available, but only a minimal subset of them enable delegation. These are:

  1. Common Data Services
  2. Dynamics 365
  3. Salesforce
  4. SharePoint
  5. SQL Server
  6. Exceptions

Let’s explore each one.

Common Data Services

NumberTextOption SetDate TimeGUID
NONANANANA
+NONANANANA
<NOYESNOYESNA
<=NOYESNOYESNA
<>YESYESYESYESYES
=YESYESYESYESYES
>NOYESNOYESNA
>=NOYESNOYESNA
And (&&)YESYESYESYESYES
AverageYESNANANANA
EndsWithNAYESNANANA
FilterYESNAYESYESYES
InNONONONONO
IsBlankYESYESYESYESYES
LeftNAYESNANANA
LenNANONANANA
LookUpYESNAYESYESYES
LowerNAYESNANANA
MaxYESNANANONA
MidNAYESNANANA
MinYESNANANONA
NotYESYESYESYESYES
Now()NANANANONA
Or (||)YESYESYESNANA
ReplaceNAYESNANANA
RightNAYESNANANA
SearchNANAYESNANA
SortYESYESYESYESNA
SortByColumnsYESYESYESYESNA
StartsWithNAYESNANANA
SubstituteNANONANANA
SumYESNANANANA
Today()NANANANONA
TrimNANONANANA
TrimEndsNANONANANA
UpperNAYESNANANA

Limitations:
1. The number cannot contain arithmetic expressions. To work your way around this just check Delegation Issue and Workarounds.
2. Sum, Min, Max, Avg are limited to 50 000 records.

Back to Top

Dynamics 365

NumberTextDate Time
NONANA
+NONANA
<YESYESYES
<=YESYESYES
<>YESYESYES
=YESYESYES
>YESYESYES
>=YESYESYES
And (&&)YESYESYES
AverageNONANA
EndsWithNANONA
FilterYESNAYES
InNONONO
IsBlankYESYESYES
LeftNANONA
LenNANONA
LookUpYESNAYES
LowerNANONA
MaxNONANO
MidNANONA
MinNONANO
NotYESYESYES
Now()NANANO
Or (||)YESYESNA
ReplaceNANONA
RightNANONA
SearchNANANA
SortYESYESYES
SortByColumnsYESYESYES
StartsWithNANONA
SubstituteNANONA
SumNONANA
Today()NANANO
TrimNANONA
TrimEndsNANONA
UpperNANONA

Back to Top

Salesforce

NumberTextDate Time
NONANA
+NONANA
<YESYESYES
<=YESYESYES
<>YESYESYES
=YESYESYES
>YESYESYES
>=YESYESYES
And (&&)YESYESYES
AverageNONANA
EndsWithNANONA
FilterYESNAYES
InYESYESYES
IsBlankNONONO
LeftNANONA
LenNANONA
LookUpYESNAYES
LowerNANONA
MaxNONANO
MidNANONA
MinNONANO
NotYESYESYES
Now()NANANO
Or (||)YESYESNA
ReplaceNANONA
RightNANONA
SearchNANANA
SortYESYESYES
SortByColumnsYESYESYES
StartsWithNANONA
SubstituteNANONA
SumNONANA
Today()NANANO
TrimNANONA
TrimEndsNANONA
UpperNANONA

Back to Top

SharePoint

NumberTextBooleanDate Time
NANONA
+NANONA
<YESNONONO
<=YESNONONO
<>YESNONONO
=YESYESYESNO
>YESNONONO
>=YESNONONO
And (&&)
AverageNANANA
EndsWithNANANA
FilterYESYESYESNO
InNA
IsBlankNONA
LeftNANANA
LenNANANA
LookUpYESYESYESNO
LowerNANANA
MaxNANA
MidNANANA
MinNANA
Not
Now()NANANA
Or (||)NA
ReplaceNANANA
RightNANANA
SearchNANANANA
SortYESYESYESYES
SortByColumnsYESYESYESYES
StartsWithNANANA
SubstituteNANANA
SumNANANA
Today()NANANA
TrimNANANA
TrimEndsNANANA
UpperNANANA

Back to Top

SQL Server

NumberTextBooleanDate TimeGUID
YESNANONANA
+YESNANONANA
<YESNONONONA
<=YESNONONONA
<>YESYESYESNOYES
=YESYESYESNOYES
>YESNONONONA
>=YESNONONONA
And (&&)
AverageYESNANANANA
EndsWithNANANANA
FilterYESYESYESNOYES
InNAYESNANANA
IsBlankNONONONONO
LeftNANANANA
LenNAYESNANANA
LookUpYESYESYESYESYES
LowerNANANANA
MaxYESNANANONA
MidNANANANA
MinYESNANANONA
Not
Now()NANANANA
Or (||)NANA
ReplaceNANANANA
RightNANANANA
SearchNOYESNONONA
SortYESYESYESYESNA
SortByColumnsYESYESYESYESNA
StartsWithNAYESNANANA
SubstituteNAYESNANANA
SumYESNANANANA
Today()NANANANA
TrimNANANANA
TrimEndsNANANANA
UpperNANANANA

Limitations:

  1. Direct data filters don’t work on SQL Server To work your way around this just check Delegation Issue and Workarounds.
  2. In will only work if string value" in <column>
  3. StartsWith will only work if StartsWith(<column>, "string value")
  4. EndsWith will only work if EndsWith(<column>, "string value")
  5. Beware of char and nchar tables. Len for example, will always return 10 in a char(10) column. A column with a value “hello” will return false for EndsWith(<column>, "llo")

Back to Top

Exceptions

Finally, let’s go over some cases where PowerApps will fetch the information and store it directly in memory. In other words, these are not delegable data sources, but we can take full advantage of PowerApp’s language:

  1. Excel workbooks
  2. Collections
  3. Tables stored in context variables.

 

Back to Top

Feature Photo by Todd Quackenbush on Unsplash

Manuel Gomes

I have 18 years of experience in automation, project management, and development. In addition to that, I have been writing for this website for over 3 years now, providing readers with valuable insights and information. I hope my expertise allows me to create compelling, informative content that resonates with the audience.

View all posts by Manuel Gomes →

Leave a Reply

Your email address will not be published. Required fields are marked *

Mastodon