Hi everyone
I am currently working on an app that has a datasource of a large SharePoint Online list. I have a gallery in my app that points to a collection and I want my users to be able to search this gallery to find the name of a customer. I've setup a text input box (txtSearchPerson) and a search button. The OnSelect for the button is as follows:
ClearCollect(CustomerColl,Filter(CustomerList,txtSearchPerson.Text in Name))
In the formula bar I get a delegation warning saying it won't work on large datasets and sure enough when I run the search it only searches on the first 500 items in the gallery. I know I can increase this value but only up to 2,000 items and my list currently has over 10,000.
I've checked the list of delegable fields and in is in there so I'm not sure why it won't work? I've indexed the Name field in my SharePoint list but this has made no difference. I'd be really grateful if anyone knows of any workaround I can use to make sure my users can search like this on the whole of the list data.
Thanks in advance for your help.
You have a couple of choices depending on your data and your design.
One is that you can consider collecting the entire list initially (I wouldn't do it on the button) and then use that as your source for searching or filtering.
The other choice would be to consider using StartsWith instead of In. StartsWith is delegable on the SharePoint datasource, whereas In will not delegate.
You might want to take a look over this recent posting dealing with large datasources. There is a post in that thread (about 6 responses in) that I deal with a very similar situation with a large name/contact list in SharePoint.
I hope this is helpful for you.
Hi @gjayne1984 ,
Based on the issue that you mentioned, I think you have faced a Delegation issue with your formula.
Actually, this Delegation warning issue is related to in operator within your formula. Currently, within PowerApps, the in operator could not be delegated for SP List data source.
More details about delegable functions and operators supported within SP list data source, please check the following article:
https://docs.microsoft.com/en-us/connectors/sharepointonline/
As an alternative solution, I think the StartsWith function could achieve your needs. I have made a test on my side, please modify your formula as below:
ClearCollect(
CustomerColl,
Filter(
CustomerList,
StartsWith(Name, txtSearchPerson.Text)
)
)
Please take a try with above formula, check if the issue is solved.
Best regards,
Thanks for posting in the community @gjayne1984 - can you review the above replies and update the thread if they were helpful?
Thank you,
@Anonymous
User | Count |
---|---|
206 | |
98 | |
91 | |
46 | |
43 |
User | Count |
---|---|
251 | |
105 | |
104 | |
65 | |
56 |