You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md
+6-2Lines changed: 6 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: mduelae
5
5
ms.topic: reference
6
6
ms.custom: canvas
7
7
ms.reviewer: mkaur
8
-
ms.date: 10/31/2024
8
+
ms.date: 3/14/2025
9
9
ms.subservice: canvas-maker
10
10
ms.author: lanced
11
11
search.audienceType:
@@ -40,6 +40,7 @@ When you select **Change environment**, you're presented with a list of environm
40
40
> [!NOTE]
41
41
> Connections listed in the app details pane outside of the app designer show connections that require user consent. Since native Dataverse connections used in the app don't require that additional consent, a native connection won't be in that list.
42
42
43
+
43
44
## Power Apps data type mappings
44
45
45
46
The Microsoft Dataverse connector is more robust than the Dynamics 365 connector and approaching feature parity. The following table lists the data types in Power Apps, and how they map to data types in Dataverse.
@@ -75,17 +76,20 @@ Dataverse for processing (rather than processing locally within Power Apps).
75
76
| SortByColumns | Yes | Yes | Yes | Yes |\-|
76
77
| StartsWith |\-| Yes |\-|\-|\-|
77
78
| Sum, Min, Max, Avg [6]| Yes |\-|\-| No |\-|
79
+
| UpdateIf/RemoveIf [10]| Yes |\-|\-| No |\-|
78
80
81
+
### Notes
79
82
1. Numeric with arithmetic expressions (for example, `Filter(table, field + 10 > 100)` ) aren't delegable. Language and TimeZone aren't delegable. Casting to a column to a number isn't supported. When a value appears as a number in Power Apps but the back-end data source isn't a simple number such as currency then it isn't delegated.
80
83
2. Doesn't support Trim[Ends] or Len. Does support other functions such as Left, Mid, Right, Upper, Lower, Replace, Substitute, etc. Also, casting such as Text(column) isn't supported for delegation.
81
84
3. DateTime is delegable except for DateTime functions Now() and
82
85
Today().
83
86
4. CountRows on Dataverse uses a cached value. For non-cached values where the record count is expected to be under 50,000 records, use `CountIf(table, True)`.
84
87
5. For CountRows, ensure that users have appropriate permissions to get totals for the table.
85
-
6.The aggregate functions are limited to a collection of 50,000 rows. If needed, use the Filter function to select 50,000. Aggregate functions aren't supported on Views.
88
+
6.All aggregate functions are limited to a collection of 50,000 rows. If needed, use the Filter function to select 50,000. Aggregate functions aren't supported on Views.
86
89
7. FirstN isn't supported.
87
90
8.`In` is subject to the 15 table query limit of Dataverse.
88
91
9. Supports comparisons. For example, `Filter(TableName, MyCol = Blank())`.
92
+
10. UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500/2000 records. They successively bring down records beyond the non-delegation 500/2000 record limit. Records that meet the If condition are collected. Generally, a maximum of 500/2000 records are collected separately and then changed per execution. However, more records may be updated if the existing local data cache is large as the function may have access to more records for evaluation.
|`Text`| Single line of text, Multiple lines of text, Calculated |
101
+
102
+
> [!NOTE]
103
+
> SharePoint types that map to Power Apps as complex often have subfields that map to basic types such as text and number.
104
+
105
+
## Power Apps delegable functions and operations for SharePoint
106
+
107
+
The following Power Apps operations, for a given data type, may be delegated to SharePoint for processing (rather than processing locally within Power Apps).
108
+
109
+
| Operation/Function [1]| Number | Text | Boolean | DateTime | Complex [2]|
|`<, <=,<>, >, >=`| Yes [3]| No | No | Yes | Yes |
112
+
|`=`| Yes | Yes | Yes | Yes | Yes |
113
+
|`Filter`| Yes | Yes | Yes | Yes | Yes |
114
+
|`IsBlank`| - | No [4]| - | - | No |
115
+
|`Lookup`| Yes | Yes | Yes | Yes | Yes |
116
+
|`Sort`| Yes | Yes | Yes | Yes | No |
117
+
|`SortByColumns`| Yes | Yes | Yes | Yes | No |
118
+
|`StartsWith`| - | Yes | - | - | Yes |
119
+
|`UpdateIf/RemoveIf`[5]| Yes | No | - | - | No |
120
+
121
+
### Notes
122
+
123
+
1. Expressions that are joined with **And** or **Or** are delegable to SharePoint. **Not** won't delegate. SharePoint system fields don't generally delegate. These fields include:
124
+
* Identifier
125
+
* IsFolder
126
+
* Thumbnail
127
+
* Link
128
+
* Name
129
+
* FilenameWithExtension
130
+
* Path
131
+
* FullPath
132
+
* ModerationStatus
133
+
* ModerationComment
134
+
* ContentType
135
+
* IsCheckedOut
136
+
* VersionNumber
137
+
* TriggerWindowStartToken
138
+
* TriggerWindowEndToken
139
+
140
+
2. SharePoint supports delegation of complex types by deferring the decision for delegation to the subfield involved. Check the type of the subfield being used on the complex type and then check this table for delegation capabilities. Only Email and DisplayName are delegable in the Person data type.
141
+
3. SharePoint ID fields are shown as a number field in Power Apps. However, the underlying type is actually Text. SharePoint only supports the equal ('=') operation for delegation on an ID field. Relational operations such as `<, <=,<>, >, >=` won't work on a SharePoint ID field.
142
+
4. A formula such as Filter(..., IsBlank(CustomerId)) won't delegate to SharePoint. However, that formula is semantically close to Filter(..., CustomerId = Blank()), will delegate to SharePoint. These formulas aren't equivalent because the second formula won't treat the empty string ("") as empty. However, the second formula might work for your purposes. On SharePoint, this approach works for the 'equals' operator ("=") but not the operator for 'not equals' ("<>").
143
+
5. UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500/2000 records. They successively bring down records beyond the non-delegation 500/2000 record limit. Records that meet the If condition are collected. Generally, a maximum of 500/2000 records are collected separately and then changed per execution. However, more records may be updated if the existing local data cache is large as the function may have access to more records for evaluation.
144
+
145
+
146
+
147
+
148
+
149
+
150
+
90
151
## Related information
91
152
92
153
- Learn more about working with lists in Power Apps in [Integrate SharePoint Online into Power Apps overview](../sharepoint-list-integration-overview.md)
Copy file name to clipboardExpand all lines: powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn how to connect to a SQL server to access and view data from M
4
4
author: lancedMicrosoft
5
5
ms.topic: reference
6
6
ms.custom: canvas
7
-
ms.date: 10/25/2024
7
+
ms.date: 3/14/2025
8
8
ms.subservice: canvas-maker
9
9
ms.author: lanced
10
10
ms.reviewer: mkaur
@@ -97,19 +97,19 @@ This table shows which operations are delegable to SQL Server by data type. Expr
97
97
98
98
### Notes
99
99
100
-
[1] Supported for `(EndsWith(\<column>, "string value"))` but not for `(EndsWith("string value", \<column>))`. If a char(10) column has a value of "hello", `EndsWith(\<column>, "llo")` returns false, by design. A char(10) column has 10 characters.
100
+
1. Supported for `(EndsWith(\<column>, "string value"))` but not for `(EndsWith("string value", \<column>))`. If a char(10) column has a value of "hello", `EndsWith(\<column>, "llo")` returns false, by design. A char(10) column has 10 characters.
101
101
102
-
[2] Direct date filters don't work for SQL Server with an on premise Data Gateway. However, you can create a calculated column that works. For example, you can create: <br>`ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))` <br>And then filter on the calculated number column.
102
+
2. Direct date filters don't work for SQL Server with an on premise Data Gateway. However, you can create a calculated column that works. For example, you can create: <br>`ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))` <br>And then filter on the calculated number column.
103
103
104
-
[3] Supported for `("string value" in \<column>)`, but not for `(\<column> in "string value")`.
104
+
3. Supported for `("string value" in \<column>)`, but not for `(\<column> in "string value")`.
105
105
106
-
[4] An expression such as `Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))` won't delegate to the server. However, you can use an expression such as `Filter('[dbo].[MyOrders]', CustomerId <> Blank())`, which does delegate to the server and is semantically close. The difference is that the second expression won't treat the empty string ("") as empty. Although the expressions aren't equivalent, the latter might work for your purposes. You can't use this method for the Guid data type.
106
+
4. An expression such as `Filter('[dbo].[MyOrders]', !IsBlank(CustomerId))` won't delegate to the server. However, you can use an expression such as `Filter('[dbo].[MyOrders]', CustomerId <> Blank())`, which does delegate to the server and is semantically close. The difference is that the second expression won't treat the empty string ("") as empty. Although the expressions aren't equivalent, the latter might work for your purposes. You can't use this method for the Guid data type.
107
107
108
-
[5] Power Apps delegates the `Len` function, but the behavior might not work as you expect. In SQL Server, a char(10) column with value "hello" always has a length of 10. However, Power Apps treats that string as having a length of 5, which may cause discrepancies and confusion. Don't use `char`/`nchar` on SQL server, but use `varchar`/`nvarchar` instead.
108
+
5. Power Apps delegates the `Len` function, but the behavior might not work as you expect. In SQL Server, a char(10) column with value "hello" always has a length of 10. However, Power Apps treats that string as having a length of 5, which may cause discrepancies and confusion. Don't use `char`/`nchar` on SQL server, but use `varchar`/`nvarchar` instead.
109
109
110
-
[6] Supported for `(StartsWith(\<column>, "string value"))`, but not for `(StartsWith("string value", \<column>))`
110
+
6. Supported for `(StartsWith(\<column>, "string value"))`, but not for `(StartsWith("string value", \<column>))`
111
111
112
-
[7] UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500/2000 records. They successively bring down records beyond the initial 500/2000 record limit. Records that meet the **If** condition are collected. Generally, a maximum of 500/2000 records are collected and changed per execution. However, more records may be updated if the existing local data cache is very large as the function may have access to more records for evaluation.
112
+
7. UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500/2000 records. They successively bring down records beyond the non-delegation 500/2000 record limit. Records that meet the If condition are collected. Generally, a maximum of 500/2000 records are collected separately and then changed per execution. However, more records may be updated if the existing local data cache is large as the function may have access to more records for evaluation.
Copy file name to clipboardExpand all lines: powerapps-docs/maker/canvas-apps/delegation-overview.md
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ author: lancedMicrosoft
6
6
ms.topic: overview
7
7
ms.custom: canvas
8
8
ms.reviewer: mkaur
9
-
ms.date: 10/31/2024
9
+
ms.date: 3/14/2025
10
10
ms.subservice: canvas-maker
11
11
ms.author: lanced
12
12
search.audienceType:
@@ -39,10 +39,11 @@ Take heed of delegation warnings that identify places where delegation isn't pos
39
39
Delegation is supported for certain tabular data sources only. If a data source supports delegation, its [connector documentation](/connectors/) outlines that support. For example, these tabular data sources are the most popular, and they support delegation:
40
40
41
41
-[Power Apps delegable functions and operations for Microsoft Dataverse](connections/connection-common-data-service.md#power-apps-delegable-functions-and-operations-for-dataverse)
42
-
-[Power Apps delegable functions and operations for SharePoint](/connectors/sharepointonline/#power-apps-delegable-functions-and-operations-for-sharepoint)
43
-
-[Power Apps delegable functions and operations for SQL Server](/connectors/sql/#power-apps-functions-and-operations-delegable-to-sql-server)
42
+
-[Power Apps delegable functions and operations for SharePoint](connections/connection-sharepoint-online.md#power-apps-delegable-functions-and-operations-for-sharepoint)
43
+
-[Power Apps delegable functions and operations for SQL Server](connections/sql-connection-overview.md#power-apps-functions-and-operations-delegable-to-sql-server)
44
44
-[Power Apps delegable functions and operations for Salesforce](/connectors/salesforce/#power-apps-delegable-functions-and-operations-for-salesforce)
45
45
46
+
46
47
Imported Excel workbooks (using the **Add static data to your app** data source), collections, and tables stored in context variables don't require delegation. All of this data is already in memory, and the full Power Apps language can be applied.
0 commit comments