Skip to content

Commit 53cb695

Browse files
Live Publish (03/14/2025 12:00:00 PM)
2 parents 771b9f8 + d9414b5 commit 53cb695

File tree

4 files changed

+80
-14
lines changed

4 files changed

+80
-14
lines changed

powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: mduelae
55
ms.topic: reference
66
ms.custom: canvas
77
ms.reviewer: mkaur
8-
ms.date: 10/31/2024
8+
ms.date: 3/14/2025
99
ms.subservice: canvas-maker
1010
ms.author: lanced
1111
search.audienceType:
@@ -40,6 +40,7 @@ When you select **Change environment**, you're presented with a list of environm
4040
> [!NOTE]
4141
> 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.
4242
43+
4344
## Power Apps data type mappings
4445

4546
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).
7576
| SortByColumns | Yes | Yes | Yes | Yes | \- |
7677
| StartsWith | \- | Yes | \- | \- | \- |
7778
| Sum, Min, Max, Avg [6] | Yes | \- | \- | No | \- |
79+
| UpdateIf/RemoveIf [10] | Yes | \- | \- | No | \- |
7880

81+
### Notes
7982
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.
8083
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.
8184
3. DateTime is delegable except for DateTime functions Now() and
8285
Today().
8386
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)`.
8487
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.
8689
7. FirstN isn't supported.
8790
8. `In` is subject to the 15 table query limit of Dataverse.
8891
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.
8993

9094
## Call Dataverse actions directly in Power Fx
9195

powerapps-docs/maker/canvas-apps/connections/connection-sharepoint-online.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: NickWaggoner
55
ms.topic: reference
66
ms.custom: canvas
77
ms.reviewer: mkaur
8-
ms.date: 3/1/2025
8+
ms.date: 3/14/2025
99
ms.subservice: canvas-maker
1010
ms.author: mkaur
1111
search.audienceType:
@@ -87,6 +87,67 @@ If you build a new app or have an existing app, you can connect to SharePoint th
8787
8888
You see a confirmation banner that your data source was added to your app.
8989

90+
91+
## Power Apps data type mappings
92+
93+
|Power Apps | SharePoint |
94+
| -------------- | ---------------------------------------------------------------------------------- |
95+
| `Boolean` | Yes/No (checkbox) |
96+
| `DateTime` | Date and Time |
97+
| `Image` | Hyperlink or Picture, Image |
98+
| `Complex` | Choice, Lookup, Person, Group, Task Outcome, External Data, Managed Metadata |
99+
| `Number` | Number, Currency, ID |
100+
| `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] |
110+
|-------------------------|---------|--------------|---------|-------------|-------------|
111+
| `<, <=,<>, >, >=` | 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+
90151
## Related information
91152

92153
- Learn more about working with lists in Power Apps in [Integrate SharePoint Online into Power Apps overview](../sharepoint-list-integration-overview.md)

powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to connect to a SQL server to access and view data from M
44
author: lancedMicrosoft
55
ms.topic: reference
66
ms.custom: canvas
7-
ms.date: 10/25/2024
7+
ms.date: 3/14/2025
88
ms.subservice: canvas-maker
99
ms.author: lanced
1010
ms.reviewer: mkaur
@@ -97,19 +97,19 @@ This table shows which operations are delegable to SQL Server by data type. Expr
9797

9898
### Notes
9999

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.
101101

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.
103103

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")`.
105105

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.
107107

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.
109109

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>))`
111111

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.
113113

114114

115115
## Related information

powerapps-docs/maker/canvas-apps/delegation-overview.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: lancedMicrosoft
66
ms.topic: overview
77
ms.custom: canvas
88
ms.reviewer: mkaur
9-
ms.date: 10/31/2024
9+
ms.date: 3/14/2025
1010
ms.subservice: canvas-maker
1111
ms.author: lanced
1212
search.audienceType:
@@ -39,10 +39,11 @@ Take heed of delegation warnings that identify places where delegation isn't pos
3939
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:
4040

4141
- [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)
4444
- [Power Apps delegable functions and operations for Salesforce](/connectors/salesforce/#power-apps-delegable-functions-and-operations-for-salesforce)
4545

46+
4647
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.
4748

4849
## Delegable functions

0 commit comments

Comments
 (0)