Powerapps overcome 2000 item limit from any datasource
- Filter & LookUp: Delegable for most tabular data sources (Dataverse, SQL, SharePoint).
- Sort & SortByColumns: Generally delegable, but often restricted to single columns or specific data types.
- StartsWith: Frequently delegable and often used as a performance-friendly alternative to
Search. - Sum, Average, Min, Max: Delegable on advanced data sources like SQL and Dataverse, though support varies by connector.
- Logical Operators:
And(&&),Or(||), and comparison operators (=, <, >) are typically delegable.
- Data Row Limit: By default, Power Apps only retrieves the first 500 records for local processing (this can be increased to 2,000 in app settings). Records beyond this limit are ignored.
- Common Examples:
- Search: Non-delegable in SharePoint, but delegable in Dataverse.
- Group / GroupBy: Generally non-delegable.
- FirstN, Last, LastN: Processed locally.
- ForAll: Does not support delegation.
- String Functions:
Lower,Upper,Mid,Len, andConcatenateoften block delegation in complex filters. - Calculated Columns: Using logic on columns that require local calculation usually triggers a delegation warning.
- Data Integrity: Using a non-delegable function on a list with 10,000 records will only search the first 500–2,000, leading to silent data loss where the user doesn't realize results are missing.
- Performance: Non-delegable queries force the app to download large amounts of data, which slows down load times and increases memory usage.
- Visual Indicators: In Power Apps Studio, a blue underline or a yellow warning triangle indicates a delegation issue.
First go through delegation concept
https://tejasadventure.blogspot.com/2020/05/power-apps-understanding.html
In powerapps, we observe by default 500 item limit has set with in the app level for any data source.
In order to overcome, we have option to set the limit of 2000 item limit maximum in the app.
Now using code, MaximoFacility is my data source name contains 3000 items.
ColFacilityDropdown is the collection storing the count of items from data source. We expect to see more than 2000 items.
Based on StartWith function filtering the data with respective to the charectors and numbers as mentioned below.
Code: Place the below code in a button on select property.
Add label with code CountRows(ColFacilityDropdown)
ClearCollect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "A" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "B" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "C" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "D" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "E" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "F" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "G" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "H" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "I" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "J" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "K" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "L" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "M" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "N" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "O" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "P" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Q" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "R" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "S" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "T" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "U" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "V" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "W" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "X" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Y" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Z" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Z" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "0" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "1" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "2" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "3" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "4" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "5" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "6" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "7" )));
Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "8" )));
https://www.youtube.com/watch?v=b250r1lET6g&t=141s
Comments
Post a Comment