You weren't kidding when you said this video is at an advanced level. I'll have to watch it a couple times to completely understand it. But this is a game-changing technique. Reza does it again. 🙌🙌 Thanks a ton for sharing 😊
This was the hardest video to record. Challenge was to explain it in a simple manner that everyone can understand. It would need repeat viewings for sure :)
@@RezaDorrani Wow! It even pulled up search text that matched the attachment content of an SP Lists item. Not just that, you can even search on text strings or multiple keywords separated by spaces. 🤯
@@RezaDorraniVery clever how you applied Size and From to workaround query return of max 500 records. Does the From value start at 0 and then add or subtract the Size value from it when the Next or Previous button is selected?
My goodness, this video is pure gold! My organization has grown from 7 offices to over 50 in the last 18 months and all our data points have increased by a similar ratio, which has made all our power apps fail at one point or another due to delegation. I am no expert but with a teacher like you, I have full confidence in resolving many of our issues. Thank you!
This technique, with some modifications enabled me to query a list with 5.7 million Rows ! Simple Filter was taking minutes to load with proper delegation, and Using Powerautomate couldn't query the whole list. Graph is truly something else !
Awesome!!! Graph is the best option for searching in SharePoint specially with the batching options. I wish folks stop loading tons of data in collections and stop using get items in flow to send large data back to Power Apps.
Great work my man, well done in finding a way to make API calls inside Powerapps in a standard license. Thats an amazing find, the way I've been doing it is using flow to make all my http requests.
Thank You! However, I dont believe the fact that Office365Groups connector supporting SharePoint will stand the test of time. I already have a workaround on that I am evaluating on. My next video will give you more insights into that technique.
@@ylmazozturk06 Best to hit the bell icon to get notified whenever my new video releases. I have finished my graph video series. Check playlist on graph api on my channel.
This is incredible, when the video first started I was thinking "oh yeah, we can make an http request through power automate for the search" I had no idea I could access that directly in power apps with standard licensing. This is a GAME CHANGER
Thanks. I don’t foresee the groups connector supporting SharePoint for long. So we would need options to call the SharePoint graph api by some means. I have another approach. I will be showcasing it next week.
@@RezaDorrani exactly what I was thinking. Microsoft is going to see this and remove it but they really need a solution here that doesn't involve combining multiple collections or pulling everything in from Power automate. Direct access to SharePoint search through http would be ideal. But for now, not hard for me to rewrite some apps using this to make them more efficient
Backward compatibility should be supported so I don't foresee existing apps being impacted but new apps (in future - whenever the change comes in) will not be able to leverage the v1 endpoint.
Thanks for this detailed video on using Graph API to avoid delegation issues. The search crawling schedule that takes 15 minutes is a huge limitation in applying this for my use-cases. Thanks Reza
Search crawling schedule cannot be modified. If your scenario is real time then this is not an option and you would fall into delegation challenges. There is always a give and take.
Wow... Amazing... Even though we are getting the results, it sounds little difficult for a citizen developer like me. Big fan of yours Reza ❤. Since powerapps is low code development tool, it should bring something which will provide same results with minimal steps.
Thanks so much. This was a find using a recent update on Untyped Objects. It was a lot of work to get the results. This is by no means a beginner or intermediate level video.
Thanks Reza sir for the insightful content. This Delegation in Power Apps was a big challenge, I would be implementing the entire graph api call on few of my apps to test it. Big thanks to you again, you have been doing great with these contents. Always a fan of your videos.
Fantastic video, I am able to search for folders in our SharePoint library and return the webUrl for project storage thanks to this video... thank you so much Reza 😃
Great sample, thanks for sharing! Just a consideration: SharePoint Lists Connector for PowerApps (should) uses behind the scene the SharePoint APIs for Lists and these does not require indexing time (so you can get data in "real time"). Graph Search API needs that the data will be first indexed and processed and, despite this time should not take long, is actually not predictable 🙂
I've been getting around the 2,000 row limit using a combination Filter(LookUp()) function, and it has worked for years in large lists that are even over 10,000 items. But this method seems way more reliable and easy. Guess I'm going to need to go back and update all my apps.
@@RezaDorrani In case of data verse, would you use Search too as opposed to Filter/Lookup? and why? I haven't used search function for data verse, filter function takes few seconds to retrieve the data even when the filter is on an indexed column.
Oh my God bro, you are a rockstar. such a advanced insight in this video. it will take me several re-views of this video to grasp and apply this feature. Hats off to you.
Thanks for timely video, we were looking for this solution last two weeks and you gave the perfect solution Reza, tons of thanks for your efforts in making such a great solution and video 🎉🎉🎉
Most welcome. Please be mindful that it uses Office365Groups connector that currently does support these Api’s. In my next video, I will show 2 approaches, that ways we also have multiple options.
Well well, what can I say again. I just had to upgrade to Silver level to download the solution. 😁. Again, it needs a couple more times of watching for it to sink in but they way you take the time to break things down is highly commendable. Having configured Search in On-premise SharePoint, I quickly remembered the managed properties feature. The Graph API is certainly a place I need to research into more. Great video, great content. Thanks for sharing.
Thank You! Here is my playlist on Dataverse Microsoft Dataverse ua-cam.com/play/PLTyFh-qDKAiHr7HwkvlHXpCNf73xNBqj_.html Tell me what other ideas you have in mind? I make videos when multiple requests are made for a topic. I listen to the audience. When I hear a common voice, I plan for that video.
Excellent video, thank you :) ... using this now and adding filtering on the gallery so the displayed results only come from one column. Daunting to begin with but now it is making perfect sense :) .. keep the great work up
Thanks for another informative video Reza. My brain is overloaded now trying to digest all this. Hopefully I can fully understand this tomorrow when in office. 😂
❤ Really a great work Rezza, i tried similar things 2 months back, no luck, i was struck in the "file" parameter, thanks a lot to You and Hiro for decoding the the way and exploring to new heights.🎉🎉
Wow that's next-level stuff! Nice solution to a common pain point for us app makers who rely on SharePoint. (And looks like I need to study up on Graph APIl...) Thanks, Reza.
well I watched it, but i know when i am going to do it myself, it will be like a mountain to climb,, appreciate your efforts Reza, awesome explanation as always :)
When selecting data sources like SharePoint, one has to come up with workarounds. Dataverse is the native database of the power platform and hence offers maximum flexibility and ease of use.
@@RezaDorrani Ok, let me rephrase "if only PowerApps could do this out-of-the-box" to "if only Microsoft didn't charge extra for Dataverse". I work for a not-for-profit wildlife conservation charity. We either spend money on Dataverse or spend money on saving endangered species...
Thanks so much for this and all your video's they have been so helpful as I've started building power apps. This helped greatly implement a feature our users wanted. For any who are having that error in the base 64 code replace the double quotes from char and dec with single quotes or remove entirely. looks like the syntax has been updated since it's posting.
Reza... you are a wizard 🧙♂️ how much would you charge for a week??? Just a week for mentoring 2 people!! You seriously do such a great job explaining in detail how to make things we really need like this!!!
I have not come across any issues, hence not sure. Video description has link to download the entire solution (members only - check description for details)
That was done using a bit of maths based on total results returned and results on page. I have shared entire App - link in video description (member only)
@@RezaDorrani Thanks ! one thing i noticed is that you can't apply more filters on it ? only search ? and the columns must be site columns / refinables right ?
@@adirnagar6940 You can search and filter. Check the documentation. Columns can be site and list columns. In my demo the custom columns are list columns but better option is site columns.
Wow this is fantastic, thank you so much Reza! If I would like the users to not see the search button and the gallery items to appear as the text is typed in the search box, could you please advise on this? Thanks!
Thanks for the excellent content Reza! I've been trying to figure out a way to use this search for other columns but the title (as your example) and not having success. Any ideas or help to point me to the right documentation to study/ refer to?
thanks Reza great stuff✊. Just out of curiosity, is there a way to filter the query results based on 'Created by' so that the users can only see what they have created.
Thank you very much Reza, your a Godsent! Question though, how long does it take yours to search an item? mine looks like its taking about 11 secs to search. Do you have any suggestion on how to optimize it?
Hi Reza, I really enjoy your videos, keep them coming! I just re-created this search feature on my canvas app for reviewing service approvals. I'm having trouble with a couple settings. First, my gallery doesn't show until I try and search for something; What am I doing wrong? Also, what happens if you have lookup columns within the gallery? I can't get those to show up when I try to setup my gallery. Any insight would be greatly appreciated. Thanks
Thanks so much! In the video I explain how to show all results somewhere in the end of the video. Video description has link to download sample app (members only) wherein you can check all the logic and more. This feature uses search so the key is managed properties. Check documentation on search managed properties.
thanks Reza!! About search query, where can I learn to write the custom query? About flelds, do I need create those fileds in sharepoint admin and re-index it to use the query?
Documentation would be the best resource. Managed properties is the key. You need to map crawled properties to managed properties. Indexing of search is automatically done in SharePoint Online. Admin does not control the crawl schedule.
Thanks for the perfect method to avoid delegation. I still have questions on the search schema because I'm not able to find the managed properties for the custom columns which I have created. Do you have any idea about it?
This video shows how incompetent Microsoft to facilitate our needs I can see that Microsoft would like to sell Dataverse license. Props to Reza who find out this workaround! And we can see the performance is not that bad searching 10.000 records
FYI - I work at Microsoft and ❤️ every aspect of what the team does. They work day in and day out to put a single feature out. I know how hard each member works to deliver. Dataverse is not only about searching. It is an entire service. However, since I had so many folks asking for a breakthrough in SharePoint search. Here is my video showcasing its possibilities. Thanks for watching and liking it.
@@RezaDorrani I'm sorry if I offense you, I love your videos and learned many things from your videos but every time I sees your video, it always make me wonder why Microsoft didn't give us easy method to achieve something simple =)
@@twom1x No worries. I respect all opinions and comments. I have been getting quite a few messages on how this should be done in product. This was a very recent find. Im sure with time these features will make their way to the product.
Excellent and really useful video Reza. Could I ask though what code is on the NEXT button and the DROPDOWN please? I've recreated the app, but it's just missing those steps, so that I can show all the records.. Thanks.
Most welcome! I have made entire app available for download to channel members (silver). I will be sharing complete apps and flows with them. I cannot share the code as its a member only feature but idea of next and previous button is to check if more record exists and accordingly update the size and from properties.
Great video and just what I needed! Unfortunately, I have an issue at 11:03 where my variable is boolean when it needs to be a UntypedObject. I did enable "ParseJSON function and untyped objects", saved my project, and reloaded it but the variable type remains boolean. Any ideas what might be causing this?
@@GuyBerthiaume-ScaleModels Please note- Office 365 groups connector http supports this api today. There is a v2 http which does not. In future videos, I plan to show other options with azure http as well to call graph api.
Hi Reza, amazing tutorial, seems perfect, except I encountered one issue. When I use total search results, it shows me the exact number from the API search. But the gallery itself does not reproduce any results, I double-checked the Items on Gallery and Title-Subtitle many times, but even in edit mode it does not show any results. Do you have any suggestions? Btw, amazing tutorial, loving it!
Thanks so much! I have not experienced the mentioned issue, hence not sure. I will recommend checking or posting your issue on forums in case someone has experienced something similar community.powerplatform.com/
So my issue was if someone experiences the same: Table(Index(Table(Index(Table(searchResults.value),1).Value.hitsContainers),1).Value.hits) In the searchResults.value for some reason power apps changed it to searchResults.Value, with capital V. And that caused the issue, because the object is "value" not "Value". It took me almost a week to figure it out :D But amazing stuff Reza, much appreciate!
I used this in some of my apps, very useful and indeed gamechanger! However, I only can call title and other few standard columns. How did you put your list columns in the Managed Property? I tried creating a site column but It doesn't appear in the Managed Properties... It was perfect if I could add my list columns. But it needs to be by site columns, do you have a video on that or something? Thank you very much, you have been helping me a lot!
Most welcome! I do not have any video references on mapping managed properties. Check documentation for that one. I believe there are a standard set of managed properties that are available that you would need to map crawled properties to.
U earn my highest appreciation for helping the community at large! By the way, can I use the same method to call Sharepoint image without delegation warning?
Amazing Reza, working like a charm! Do you think there is a way by chance to be able to sort the results from A-Z? Or to include a "contains()" to be able to search for parts of words? Anyways, great job!
Hi Reza! Great video. We have been looking for a solution like this for a while. Thank you for figuring this out. I did have a quick question though. Would it be possible to include custom metadata fields within these search results? Thanks!
Hi Reza, thanks for a great tutorial video. This is a really useful topic for me as I am currently trying to implement a search myself. I have replicated what you have done and the search is working for me for all but one part. I have a custom column that is mapped to a managed property in the search schema, and I know the managed property has data as it works with the REST API, but when I try to return it in the search using the above method, it is not returned as part of the Fields property of the JSON. Is there anything you can think of that might cause the issue, or is there any documentation you can point me to to help?
Was in the same position and ended up ditching a custom managed properties for the pre-made refinable properties. I'm using text so I started with RefinableString00, and mapped the crawled property of a column to it. Then I reindexed the site and the list (get more detail on how on google and don't know if it's necessary to reindex both) then after it was done reindexing in about 15 minutes, I started getting the results I wanted.
Great tutorial! In case of data verse, would you use Search too as opposed to Filter/Lookup? and why? I haven't used search function for data verse, filter function takes few seconds to retrieve the data even when the filter condition is on an indexed column.
Hi Reza, Thank you for sharing this, it will be very helpful for us. One question though, Which credentials are we using here? Is it the access of the account using the App?
@@RezaDorrani Will it be possible to set a specific Credential we are using to access the API? So that we wont need to share the Access of Sharepoint to users.
@@leshe5360 Office365Groups connector only works with delegated permissions which is user permissions. This is not the solution to not giving users access to data. I have not ever done that or come across the scenario.
thanks Reza for this great video. I want to ask you one question - i have combo box which is linked with fetching data from SharePoint list and has more than 5000 rows. Can we apply this into combo box and how?
Combo box will only show a max of 2000 items (delegation limit). That is by design. I am not sure if this technique would help there or how that could be done.
@@RezaDorrani thanks Raza for your reply. Currently i am using collection at time of application load to collect data in multiple collections and then combining in one collection. It is slowing down the app little bit. Is there any better way to manage this?
@@deepakcitm I do not recommend loading large data into collections. More data you load, the more the performance hit. Better to directly connect gallery to individual data sources.
@@RezaDorrani i am working on order management app and have combo box that is loading item master directly from sharepoint which has 3800 item codes. but the issue is when i am giving user to select item from combo box it is loading first 2000 records only and also when i am trying to find record by searching in combo box which is beyond 2000 limit, i am not getting any result. This user form also have multiple combo box like customer name which is also linked to different sharepoint list. How to tackle this?
@@deepakcitm This is not something I have tried or have a video reference for. I would recommend checking or posting your query on forums in case someone has done something similar powerusers.microsoft.com
Awsome Reza you are always my powerapps Guru... One question is how to filter the gallery based on user enter text in the text box in this scenario. is it the same way or any other approach for it as we are using .. do we need to enter on change event of the text box. Can you please let us know
@@RezaDorrani this is a little bit tricky. however i tried this in gallery items property IT WORKS now .Filter(Table(Index(Table(Index(Table(Searchresults.value),1).Value.hitsContainers),1).Value.hits),StartsWith(Value.resource.fields.title,TextInput1.Text)). However ,why my gallery count shows only 25 items and my Total items shows 41367. When i click on button it shows the item in the gallery? any suggestion where i can get the item with out button click.
Hey Reza, awesome video as always. I have a question: must the managed properties and search schema be created by the SharePoint tenant? I am the site administrator but not the tenant and the graph API cannot find my custom added managed properties. Thanks!
It can be done by site admin as well. There are many existing managed properties (dummy ones) created in site by default that can be used to map crawled properties.
Great video Reza. Even though I turned on the Untyped objects setting in my app, the SearchResults variable is still being returned as Boolean. I check the monitor and I can see the results being returned, with "responseType":"pabinary" in the JSON. Any thoughts? Thanks.
This looks amazing, thank you for your hard work in figuring all this out! :) For now, this is quite a bit beyond my Power Apps skill level, but we may have need of it soon. This example focuses on searching a big Sharepoint List, but I'm assuming searching a big Sharepoint Document Library wouldn't be too different?
Search document libraries would be similar. I have a video lined up on that as well. Video description has link to download sample solution (for members only)
Thanks Reza, that was awesome, one question though, does this connection impact the performance of the App. I have a gallery with multiple filters. I think with this solution I can make just a search textbox instead of making many filtering controls . right.
Hey Reza, great video this helped me a lot. I worry a little bit about the Office365Groups connector though. Will my users need Sites.Read.All permissions to use this solution ?
Office365Groups uses delegated permissions to use the graph. No elevated permissions are needed. Check documentation to see which permissions does the endpoint need. Although I did not grant any for my users.
This is perfect! I was just wandering if this can be applied to Excel as a data source? We have some very specific Power App which is more like report, and the source for it is one quite complex calculation in Excel, so it would be to complicated to upload each time to SharePoint list. Since Power App is only reading data from it it seems like logical to keep using Excel as a data source. Of course, currently we have the delagation issue. What do you think, could this method be a good solution for this kind of scenario?
The technique showcased in video uses the search api which only works with SharePoint and OneDrive. I do not have any workarounds for delegation with excel + excel is surely not a good data source of choice with power apps specially when dealing with large excel files.
Great vid, like others will need to watch a few times to digest! Reza have you done similar where you have cascading dropdowns and multiple Sharepoint lists involved i.e. Filters within Filters and lookups.. I notice performance is hit in these scenarios even when your lists are small in columns and rows. Way around is to build collections for the supporting list data but wondering have you other methods?
Thanks! I have not done videos where multiple SharePoint lists are involved. Reason being it will be a performance hit and I am not a fan of loading all data in collections.
I ran into a problem with special characters like ä ö ü. They don't get encoded into base64 properly. I still don't understand why, because they are part of the 256 character ASCII table, but it also doesn't work in online encoders unless you set them to UTF8. However, turns out I don't need to care because SharePoint search converts that to a o u and lowercase anyway as one can see in the API Explorer results. So all you need to do is replace the special characters by the their non-accented counterparts before conversion and everything is fine. Thought I'd leave this here if others run into the same problem. Thanks Reza!
You weren't kidding when you said this video is at an advanced level. I'll have to watch it a couple times to completely understand it. But this is a game-changing technique. Reza does it again. 🙌🙌 Thanks a ton for sharing 😊
This was the hardest video to record. Challenge was to explain it in a simple manner that everyone can understand. It would need repeat viewings for sure :)
@@RezaDorrani Wow! It even pulled up search text that matched the attachment content of an SP Lists item. Not just that, you can even search on text strings or multiple keywords separated by spaces. 🤯
@@patelbhargav Yes! I have a lot of these planned in future videos 😊
You could also use * syntax for text search.
Like *searchtext* and so much more
@@RezaDorraniVery clever how you applied Size and From to workaround query return of max 500 records. Does the From value start at 0 and then add or subtract the Size value from it when the Next or Previous button is selected?
@@patelbhargav Yes!
My goodness, this video is pure gold! My organization has grown from 7 offices to over 50 in the last 18 months and all our data points have increased by a similar ratio, which has made all our power apps fail at one point or another due to delegation. I am no expert but with a teacher like you, I have full confidence in resolving many of our issues. Thank you!
You are most welcome!
Congrats on the business growth!
This technique, with some modifications enabled me to query a list with 5.7 million Rows ! Simple Filter was taking minutes to load with proper delegation, and Using Powerautomate couldn't query the whole list. Graph is truly something else !
Awesome!!!
Graph is the best option for searching in SharePoint specially with the batching options.
I wish folks stop loading tons of data in collections and stop using get items in flow to send large data back to Power Apps.
Great work my man, well done in finding a way to make API calls inside Powerapps in a standard license. Thats an amazing find, the way I've been doing it is using flow to make all my http requests.
Thank You!
However, I dont believe the fact that Office365Groups connector supporting SharePoint will stand the test of time.
I already have a workaround on that I am evaluating on.
My next video will give you more insights into that technique.
Technique I plan to showcase will include flow but it will have power to query search api.
Key is getting to search api.
@@RezaDorrani When will you release the video? It's not working properly for me. :(
@@ylmazozturk06 Best to hit the bell icon to get notified whenever my new video releases. I have finished my graph video series. Check playlist on graph api on my channel.
Thank you Reza. It’s seems with the api, I can look into multi column filters that’s is performant friendly!
Yes, you are right and thanks for the appreciation
This is incredible, when the video first started I was thinking "oh yeah, we can make an http request through power automate for the search" I had no idea I could access that directly in power apps with standard licensing. This is a GAME CHANGER
Thanks. I don’t foresee the groups connector supporting SharePoint for long. So we would need options to call the SharePoint graph api by some means. I have another approach. I will be showcasing it next week.
@@RezaDorrani exactly what I was thinking. Microsoft is going to see this and remove it but they really need a solution here that doesn't involve combining multiple collections or pulling everything in from Power automate. Direct access to SharePoint search through http would be ideal. But for now, not hard for me to rewrite some apps using this to make them more efficient
Backward compatibility should be supported so I don't foresee existing apps being impacted but new apps (in future - whenever the change comes in) will not be able to leverage the v1 endpoint.
Thanks for this detailed video on using Graph API to avoid delegation issues. The search crawling schedule that takes 15 minutes is a huge limitation in applying this for my use-cases. Thanks Reza
Search crawling schedule cannot be modified. If your scenario is real time then this is not an option and you would fall into delegation challenges. There is always a give and take.
Thanks! This is a game changer for me.
I've got a lot of re-writing to do.
Great stuff. Keep up the amazing effort and work.
Great to hear!
Let me know how it goes.
amazing, I was stuck in file in graph api query, now I learnt from you how to work with graph api, Many Thanks Reza. Jazak Allah Khair.
You are most welcome
This is a Game Changer, Reza. Thanks for teaching us.
Glad to hear that!
Wow... Amazing... Even though we are getting the results, it sounds little difficult for a citizen developer like me.
Big fan of yours Reza ❤.
Since powerapps is low code development tool, it should bring something which will provide same results with minimal steps.
Thanks so much.
This was a find using a recent update on Untyped Objects. It was a lot of work to get the results. This is by no means a beginner or intermediate level video.
Thanks Reza sir for the insightful content. This Delegation in Power Apps was a big challenge, I would be implementing the entire graph api call on few of my apps to test it.
Big thanks to you again, you have been doing great with these contents. Always a fan of your videos.
Most welcome!
God mode. You’re a different level Reza! Thank you for sharing your talent.
Wow, thank you for your kind words
Much needed and awaiting!!! It's much appreciated that you researched this hard to solve this. Great!!!!
Thank You so much for the appreciation. It indeed was a lot of work on research.
The Post request example was not available anywhere. This video saved lots of efforts. Thanks Reza!!
Glad it helped!
I can't thank you sufficient for all your content which make me keep enhancing... Another gem..
My pleasure!
Fantastic video, I am able to search for folders in our SharePoint library and return the webUrl for project storage thanks to this video... thank you so much Reza 😃
Glad it helped!
Great sample, thanks for sharing! Just a consideration: SharePoint Lists Connector for PowerApps (should) uses behind the scene the SharePoint APIs for Lists and these does not require indexing time (so you can get data in "real time"). Graph Search API needs that the data will be first indexed and processed and, despite this time should not take long, is actually not predictable 🙂
Key point here is Searching.
Lists connector does not support searching in large lists. All of this is explained at start of video.
I've been getting around the 2,000 row limit using a combination Filter(LookUp()) function, and it has worked for years in large lists that are even over 10,000 items. But this method seems way more reliable and easy. Guess I'm going to need to go back and update all my apps.
This is true Search in action. Filter and Lookup technique is not a performant option.
@@RezaDorrani In case of data verse, would you use Search too as opposed to Filter/Lookup? and why?
I haven't used search function for data verse, filter function takes few seconds to retrieve the data even when the filter is on an indexed column.
@@x12624 search is a delegable function in dataverse
So many people in this comment section with the same feels about this video😂 We owe you big time, Reza!
💗
Oh my God bro, you are a rockstar. such a advanced insight in this video. it will take me several re-views of this video to grasp and apply this feature. Hats off to you.
Thanks a ton!
Yes, this would need repeat viewings
This was very helpful when we work on large dataset. Always learn from your videos. Explained in basic language and easy to understand.
Glad it was helpful!
Wow wow wow. That was a crazy great video Reza 👏👏👏👏👏
Glad you enjoyed it
Thanks for timely video, we were looking for this solution last two weeks and you gave the perfect solution Reza, tons of thanks for your efforts in making such a great solution and video 🎉🎉🎉
Thanks. I have an option for searching with SharePoint APIs as well. I will plan a video around that in the coming weeks.
Omg, watching this on mobile. Can’t wait to try on system. Great stuff
Thanks for watching and let me know how it goes.
Thanks a lot Reza, So far its once of the show stopper for few scenarios. Now we can play with it. Loved your presentation. Thanks again.
Most welcome.
Please be mindful that it uses Office365Groups connector that currently does support these Api’s. In my next video, I will show 2 approaches, that ways we also have multiple options.
@@RezaDorrani Sure, waiting for your videos.
Well well, what can I say again. I just had to upgrade to Silver level to download the solution. 😁. Again, it needs a couple more times of watching for it to sink in but they way you take the time to break things down is highly commendable. Having configured Search in On-premise SharePoint, I quickly remembered the managed properties feature. The Graph API is certainly a place I need to research into more. Great video, great content. Thanks for sharing.
Boom! Thanks so much and welcome to the Silver Club.
@@RezaDorrani I'm struggling to find the app download on the Community tab. Is it because this is from 8 months ago?
@@tbone536 You will need to look for the post. No posts are deleted.
Man, you're really the game-changer! Could I make a wish for the next series about having no choice but to stick with Dataverse?
Thank You!
Here is my playlist on Dataverse
Microsoft Dataverse
ua-cam.com/play/PLTyFh-qDKAiHr7HwkvlHXpCNf73xNBqj_.html
Tell me what other ideas you have in mind?
I make videos when multiple requests are made for a topic. I listen to the audience. When I hear a common voice, I plan for that video.
Excellent video, thank you :) ... using this now and adding filtering on the gallery so the displayed results only come from one column.
Daunting to begin with but now it is making perfect sense :) .. keep the great work up
Glad it helped!
Thanks for another informative video Reza. My brain is overloaded now trying to digest all this. Hopefully I can fully understand this tomorrow when in office. 😂
You can do it 😉
Thanks a lot for sharing this sample! One additional problem for me is how to sope query to a list within a second level subsite.
Check documentation to see how that can be done. I have not tried it.
Thank you so much Reza. This video has opened up more opportunities in creating complex PowerApps solutions.
Most welcome
❤ Really a great work Rezza, i tried similar things 2 months back, no luck, i was struck in the "file" parameter, thanks a lot to You and Hiro for decoding the the way and exploring to new heights.🎉🎉
You're most welcome!
It was Hiro's find and he deserves all the kudos.
Wow that's next-level stuff! Nice solution to a common pain point for us app makers who rely on SharePoint. (And looks like I need to study up on Graph APIl...) Thanks, Reza.
Awesome! So happy to hear that. I would definitely recommend learning about the Graph API.
To make things even more convenient, Hiro has updated his blog post to apply the fix you have demonstrated in the video.
Hiro is a true Hero
Holy Moly! Brilliant video!
Thank you very much!
well I watched it, but i know when i am going to do it myself, it will be like a mountain to climb,, appreciate your efforts Reza, awesome explanation as always :)
Thanks so much.
This surely is an advanced level video.
Wow...Thank you so much Reza 😊 Very useful as usual
Most welcome
As usual a gem of a video. Thanks a lot Reza.
Many thanks!
This is what we were expecting…. Amazing work ❤
Thank you 🙌
Excellent video like the way you take the time to explain all the steps. Can't wait for the next one.😊
Thanks so much! 😊
Thanks 👌and search with SharePoint Document Library no delegation, you can make a video please?
Its already done ua-cam.com/video/xuR-yaMkFDg/v-deo.htmlsi=2l3tCmlzxGC-Y-cv
Super Interesting stuff Raza, I'm gonna use this in my next project. Really helpful and very thoroughly explained.
Glad it was helpful!
What a great video, Reza! It really helped me a lot! Thanks!
Glad it helped!
This is a great video, Reza. Thank you!
If only PowerApps could do this out-of-the-box instead of forcing people to do so much work...
When selecting data sources like SharePoint, one has to come up with workarounds.
Dataverse is the native database of the power platform and hence offers maximum flexibility and ease of use.
@@RezaDorrani Ok, let me rephrase "if only PowerApps could do this out-of-the-box" to "if only Microsoft didn't charge extra for Dataverse".
I work for a not-for-profit wildlife conservation charity. We either spend money on Dataverse or spend money on saving endangered species...
@@chap666ish Ok
@@chap666ish i know microsoft will give some allowances to non-profits, have you already taken advantage of that?
@@caraziegel7652 Thanks, yes I'm aware of that and we do get a preferential rate, fortunately.
Thank U Reza, one of the must needed solution for SP connector and as always it is from you 😊
Glad to hear that
Thanks so much for this and all your video's they have been so helpful as I've started building power apps. This helped greatly implement a feature our users wanted. For any who are having that error in the base 64 code replace the double quotes from char and dec with single quotes or remove entirely. looks like the syntax has been updated since it's posting.
That syntax was picked from a reference blog post.
Awesome! This solves a million issues!
Yes it does!
You are helping a lot of us . I salute you .
Thank You
Reza... you are a wizard 🧙♂️ how much would you charge for a week??? Just a week for mentoring 2 people!! You seriously do such a great job explaining in detail how to make things we really need like this!!!
Thanks.
Check about me tab on my channel for details about my email.
Perfect as always Reza. Thanks for all you do.
Most most welcome
Truelly amazing video once again...Thanks Reza for sharing brilliant trick..
Thank you! Cheers!
Long awaited.. thanx Reza...
Most welcome
Brilliant! This is a game changer!
Yes, as long as office 365 groups connector supports search api.
Really cool stuff! Perfectly explained and helpful!
Glad you enjoyed it!
Amazing work. Thanks, Reza.
Thanks
It would be Great work around, excited 🎉
Hope you like it
WOW What big mission getting this method and code to work. Power Apps shows errors! No luck!
I have not come across any issues, hence not sure.
Video description has link to download the entire solution (members only - check description for details)
Wow.. amazing video as usual
Thanks so much
Thank you so much @reza for this amazing tutorial.
Glad it was helpful!
Amazing as usual, Sir!
Thank You Sir
Amazing ! works like magic !
One question : can you explain how the "next/prev" buttons work please ? didn't figure this out :)
That was done using a bit of maths based on total results returned and results on page. I have shared entire App - link in video description (member only)
@@RezaDorrani Thanks ! one thing i noticed is that you can't apply more filters on it ? only search ? and the columns must be site columns / refinables right ?
@@adirnagar6940 You can search and filter. Check the documentation.
Columns can be site and list columns. In my demo the custom columns are list columns but better option is site columns.
Wow this is fantastic, thank you so much Reza! If I would like the users to not see the search button and the gallery items to appear as the text is typed in the search box, could you please advise on this? Thanks!
On change of search text box, use Select function to call the button. You can hide the button on screen.
@@RezaDorrani perfect, thank you so much!!
Hello Reza, Great video, very helpful. Tried to do this months ago using powerautomate and SharePoint search rest api but the results were mediocre.
This is a lot faster and performant when compared with trying with power automate.
Thanks for the excellent content Reza! I've been trying to figure out a way to use this search for other columns but the title (as your example) and not having success. Any ideas or help to point me to the right documentation to study/ refer to?
Check documentation on graph api search endpoint.
Thanks Reza for exploring new things
Most welcome
Hi Reza, amazing video. Have you done any video to create custom layout for pnp search results webpart in SharePoint?
I have done no work with PnP search.
thanks Reza great stuff✊.
Just out of curiosity, is there a way to filter the query results based on 'Created by' so that the users can only see what they have created.
I believe in the search api itself you can add filters. I have not tried it though. Check documentation on search api for details.
Great, will try to use Graph API to link with Sql server table
I would like to know if that works. I have done no work with graph and sql.
Thank you very much Reza, your a Godsent! Question though, how long does it take yours to search an item? mine looks like its taking about 11 secs to search. Do you have any suggestion on how to optimize it?
Mine was taking around 2-3 seconds. Data is returned in batches by the api so it should not take that long.
A dream come true!
❤️
Hi Reza, I really enjoy your videos, keep them coming! I just re-created this search feature on my canvas app for reviewing service approvals. I'm having trouble with a couple settings. First, my gallery doesn't show until I try and search for something; What am I doing wrong? Also, what happens if you have lookup columns within the gallery? I can't get those to show up when I try to setup my gallery. Any insight would be greatly appreciated. Thanks
Thanks so much!
In the video I explain how to show all results somewhere in the end of the video. Video description has link to download sample app (members only) wherein you can check all the logic and more.
This feature uses search so the key is managed properties. Check documentation on search managed properties.
thanks Reza!!
About search query, where can I learn to write the custom query?
About flelds, do I need create those fileds in sharepoint admin and re-index it to use the query?
Documentation would be the best resource.
Managed properties is the key. You need to map crawled properties to managed properties. Indexing of search is automatically done in SharePoint Online. Admin does not control the crawl schedule.
Thanks for the perfect method to avoid delegation. I still have questions on the search schema because I'm not able to find the managed properties for the custom columns which I have created. Do you have any idea about it?
You will need to map managed properties to crawled properties for your custom columns. Check documentation on managed properties in SPO.
This video shows how incompetent Microsoft to facilitate our needs
I can see that Microsoft would like to sell Dataverse license.
Props to Reza who find out this workaround!
And we can see the performance is not that bad searching 10.000 records
FYI - I work at Microsoft and ❤️ every aspect of what the team does. They work day in and day out to put a single feature out. I know how hard each member works to deliver. Dataverse is not only about searching. It is an entire service.
However, since I had so many folks asking for a breakthrough in SharePoint search. Here is my video showcasing its possibilities. Thanks for watching and liking it.
@@RezaDorrani I'm sorry if I offense you, I love your videos and learned many things from your videos
but every time I sees your video, it always make me wonder why Microsoft didn't give us easy method to achieve something simple =)
@@twom1x No worries. I respect all opinions and comments. I have been getting quite a few messages on how this should be done in product. This was a very recent find. Im sure with time these features will make their way to the product.
This is great. Thx Reza.
Most welcome
Excellent and really useful video Reza. Could I ask though what code is on the NEXT button and the DROPDOWN please? I've recreated the app, but it's just missing those steps, so that I can show all the records.. Thanks.
Most welcome!
I have made entire app available for download to channel members (silver).
I will be sharing complete apps and flows with them.
I cannot share the code as its a member only feature but idea of next and previous button is to check if more record exists and accordingly update the size and from properties.
Great video and just what I needed! Unfortunately, I have an issue at 11:03 where my variable is boolean when it needs to be a UntypedObject. I did enable "ParseJSON function and untyped objects", saved my project, and reloaded it but the variable type remains boolean. Any ideas what might be causing this?
Remove and re-add the office 365 groups connector.
@@RezaDorrani Thank you, that solved the issue! 🙂
@@GuyBerthiaume-ScaleModels Please note- Office 365 groups connector http supports this api today. There is a v2 http which does not.
In future videos, I plan to show other options with azure http as well to call graph api.
@@RezaDorrani Looking forward to seeing this :)
@@RezaDorrani Had the same issue, I am so grateful that you even address these comments! Legend :)
Hi Reza,
amazing tutorial, seems perfect, except I encountered one issue.
When I use total search results, it shows me the exact number from the API search. But the gallery itself does not reproduce any results, I double-checked the Items on Gallery and Title-Subtitle many times, but even in edit mode it does not show any results.
Do you have any suggestions?
Btw, amazing tutorial, loving it!
Thanks so much!
I have not experienced the mentioned issue, hence not sure.
I will recommend checking or posting your issue on forums in case someone has experienced something similar
community.powerplatform.com/
So my issue was if someone experiences the same:
Table(Index(Table(Index(Table(searchResults.value),1).Value.hitsContainers),1).Value.hits)
In the searchResults.value for some reason power apps changed it to searchResults.Value, with capital V. And that caused the issue, because the object is "value" not "Value".
It took me almost a week to figure it out :D But amazing stuff Reza, much appreciate!
I used this in some of my apps, very useful and indeed gamechanger!
However, I only can call title and other few standard columns. How did you put your list columns in the Managed Property? I tried creating a site column but It doesn't appear in the Managed Properties... It was perfect if I could add my list columns. But it needs to be by site columns, do you have a video on that or something?
Thank you very much, you have been helping me a lot!
Most welcome!
I do not have any video references on mapping managed properties. Check documentation for that one.
I believe there are a standard set of managed properties that are available that you would need to map crawled properties to.
U earn my highest appreciation for helping the community at large! By the way, can I use the same method to call Sharepoint image without delegation warning?
Most welcome!
SharePoint Image cannot be searched. Not sure what delegation issue you have with it?
Amazing Reza, working like a charm! Do you think there is a way by chance to be able to sort the results from A-Z? Or to include a "contains()" to be able to search for parts of words? Anyways, great job!
Most welcome!
Graph api has plenty of options. Im not sure if these options are available.
Hi Reza! Great video. We have been looking for a solution like this for a while. Thank you for figuring this out. I did have a quick question though. Would it be possible to include custom metadata fields within these search results? Thanks!
Those metadata fields would need to come as search managed properties. Check documentation on search managed properties.
Love it, game changing
Thank You
Hi Reza, thanks for a great tutorial video. This is a really useful topic for me as I am currently trying to implement a search myself. I have replicated what you have done and the search is working for me for all but one part. I have a custom column that is mapped to a managed property in the search schema, and I know the managed property has data as it works with the REST API, but when I try to return it in the search using the above method, it is not returned as part of the Fields property of the JSON. Is there anything you can think of that might cause the issue, or is there any documentation you can point me to to help?
I am not aware of this issue and not sure what could be the cause of it. Best documentation would be on docs.microsoft.com
Same problem here, did you found a solution?
Same Problem here. Did anyone figure out a solution
Was in the same position and ended up ditching a custom managed properties for the pre-made refinable properties. I'm using text so I started with RefinableString00, and mapped the crawled property of a column to it. Then I reindexed the site and the list (get more detail on how on google and don't know if it's necessary to reindex both) then after it was done reindexing in about 15 minutes, I started getting the results I wanted.
Great tutorial!
In case of data verse, would you use Search too as opposed to Filter/Lookup? and why?
I haven't used search function for data verse, filter function takes few seconds to retrieve the data even when the filter condition is on an indexed column.
Search is a delegable function with dataverse. None of this is required there.
Hi Reza, Thank you for sharing this, it will be very helpful for us.
One question though, Which credentials are we using here? Is it the access of the account using the App?
Its the user account running the App. Search API will respect SharePoint security
@@RezaDorrani Will it be possible to set a specific Credential we are using to access the API? So that we wont need to share the Access of Sharepoint to users.
@@leshe5360 Office365Groups connector only works with delegated permissions which is user permissions. This is not the solution to not giving users access to data. I have not ever done that or come across the scenario.
thanks Reza for this great video. I want to ask you one question - i have combo box which is linked with fetching data from SharePoint list and has more than 5000 rows. Can we apply this into combo box and how?
Combo box will only show a max of 2000 items (delegation limit). That is by design. I am not sure if this technique would help there or how that could be done.
@@RezaDorrani thanks Raza for your reply. Currently i am using collection at time of application load to collect data in multiple collections and then combining in one collection. It is slowing down the app little bit. Is there any better way to manage this?
@@deepakcitm I do not recommend loading large data into collections. More data you load, the more the performance hit. Better to directly connect gallery to individual data sources.
@@RezaDorrani i am working on order management app and have combo box that is loading item master directly from sharepoint which has 3800 item codes. but the issue is when i am giving user to select item from combo box it is loading first 2000 records only and also when i am trying to find record by searching in combo box which is beyond 2000 limit, i am not getting any result. This user form also have multiple combo box like customer name which is also linked to different sharepoint list. How to tackle this?
@@deepakcitm This is not something I have tried or have a video reference for. I would recommend checking or posting your query on forums in case someone has done something similar
powerusers.microsoft.com
I'll stick to Dataverse 🤯 - Thanks for sharing Reza
I ❤️ Dataverse
This is perfect! But this still consider the SP Permission right?
It will respect security
Awsome Reza you are always my powerapps Guru... One question is how to filter the gallery based on user enter text in the text box in this scenario. is it the same way or any other approach for it as we are using .. do we need to enter on change event of the text box. Can you please let us know
Most welcome.
I have done many videos on gallery filtering. I would recommend checking those.
@@RezaDorrani this is a little bit tricky. however i tried this in gallery items property IT WORKS now .Filter(Table(Index(Table(Index(Table(Searchresults.value),1).Value.hitsContainers),1).Value.hits),StartsWith(Value.resource.fields.title,TextInput1.Text)). However ,why my gallery count shows only 25 items and my Total items shows 41367. When i click on button it shows the item in the gallery? any suggestion where i can get the item with out button click.
@@santukondapally I cannot guess here on chat by looking at a formula. I would have to try this exact scenario to know more.
Hey Reza, awesome video as always. I have a question: must the managed properties and search schema be created by the SharePoint tenant? I am the site administrator but not the tenant and the graph API cannot find my custom added managed properties. Thanks!
It can be done by site admin as well. There are many existing managed properties (dummy ones) created in site by default that can be used to map crawled properties.
Great video Reza. Even though I turned on the Untyped objects setting in my app, the SearchResults variable is still being returned as Boolean. I check the monitor and I can see the results being returned, with "responseType":"pabinary" in the JSON. Any thoughts? Thanks.
Check video comments for steps. I have responded to others with the steps needed for existing apps.
@@RezaDorrani Got it. Thanks.
This looks amazing, thank you for your hard work in figuring all this out! :)
For now, this is quite a bit beyond my Power Apps skill level, but we may have need of it soon.
This example focuses on searching a big Sharepoint List, but I'm assuming searching a big Sharepoint Document Library wouldn't be too different?
Search document libraries would be similar. I have a video lined up on that as well.
Video description has link to download sample solution (for members only)
Hi Reza, amazing video as usual! Is it possibile to get the same result with document libraries instead of lists? Thank you so much
I believe Yes. I did videos on searching within document content as well. Check graph api Playlist on my channel.
Thanks Reza, that was awesome, one question though, does this connection impact the performance of the App. I have a gallery with multiple filters. I think with this solution I can make just a search textbox instead of making many filtering controls . right.
It will not impact performance as it loads data in batches. Optimized loading.
@@yayak.9726 All covered in download app link in video description. Please check that app.
I couldn't find the link to download the app!
@@yayak.9726 App download link is for channel members only. It’s probably mentioned in video description.
Hey Reza, great video this helped me a lot. I worry a little bit about the Office365Groups connector though. Will my users need Sites.Read.All permissions to use this solution ?
Office365Groups uses delegated permissions to use the graph. No elevated permissions are needed.
Check documentation to see which permissions does the endpoint need.
Although I did not grant any for my users.
This is perfect! I was just wandering if this can be applied to Excel as a data source?
We have some very specific Power App which is more like report, and the source for it is one quite complex calculation in Excel, so it would be to complicated to upload each time to SharePoint list. Since Power App is only reading data from it it seems like logical to keep using Excel as a data source. Of course, currently we have the delagation issue. What do you think, could this method be a good solution for this kind of scenario?
The technique showcased in video uses the search api which only works with SharePoint and OneDrive.
I do not have any workarounds for delegation with excel + excel is surely not a good data source of choice with power apps specially when dealing with large excel files.
Great vid, like others will need to watch a few times to digest! Reza have you done similar where you have cascading dropdowns and multiple Sharepoint lists involved i.e. Filters within Filters and lookups.. I notice performance is hit in these scenarios even when your lists are small in columns and rows. Way around is to build collections for the supporting list data but wondering have you other methods?
Thanks!
I have not done videos where multiple SharePoint lists are involved. Reason being it will be a performance hit and I am not a fan of loading all data in collections.
I ran into a problem with special characters like ä ö ü. They don't get encoded into base64 properly. I still don't understand why, because they are part of the 256 character ASCII table, but it also doesn't work in online encoders unless you set them to UTF8. However, turns out I don't need to care because SharePoint search converts that to a o u and lowercase anyway as one can see in the API Explorer results. So all you need to do is replace the special characters by the their non-accented counterparts before conversion and everything is fine. Thought I'd leave this here if others run into the same problem. Thanks Reza!
Thanks for sharing!