Applies to Product - Power Apps
What’s happening?
The customer is experiencing delegation warnings in their Power Apps canvas app while filtering data from a multi-select choice column in Dataverse. The use of "In" and "And" operators in the filter is causing only the first 2,000 rows to be retrieved, leading to missing records. Despite these operators being documented as delegable for text columns, they are triggering delegation warnings, which contradicts the documentation.
Reason:
This arises from the non-delegable nature of both the "In" and "And" operators within the filter expression. This limitation is due to the data row limit enforced by Power Apps, which restricts the number of records retrieved from the data source in a single request. If a query is non-delegable, the data source will return only the first 2,000 rows, preventing access to records beyond this limit.
Resolution:
- Explain Delegation Behavior: Clarify how delegation works in Power Apps and the implications of using non-delegable operators.
- Use Delegable Filters: Encourage the use of delegation-friendly functions to process queries server-side, avoiding client-side limitations.
- Add Indexes: Recommend adding indexes to frequently filtered columns to improve query performance.
- Archive Older Records: Suggest moving older or less accessed records to a separate table to reduce the size of the primary table.
- Split Filtering into Smaller Delegable Queries: If the dataset is large, split the filtering into smaller queries that are delegable and merge the results into a collection.
- Power Automate Flow: If necessary, create a Power Automate flow to perform the filtering on the Dataverse side and return the filtered data to the app.
- Check API Request Limits: Verify if the customer is exceeding the 5,000 API requests per user/day limit, which could impact performance.
