cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
twister
Post Partisan
Post Partisan

dropdown got delegation warning

Hi, How do I solved this warning on dropdown selection? My record only got 700++ and I have already set the limit to 2000

 

twister_0-1620029136438.png

 

twister_1-1620029159885.png

 

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
RusselThomas
Community Champion
Community Champion

Hi @twister ,

It's just a warning - you will always get it when you increase the default data row limit size.  You can choose to ignore it, but you should know the implications of doing so.  You won't get rid of the warning unless you set your limit back down to 500.

 

The intent behind this setting is to limit and minimize data transfer wherever possible - apps, especially mobile apps, are not supposed to be transferring huge amounts of data around.   Imagine you run the equivalent of a "Select * from" against a SQL table that contains terabytes of data from a mobile device?  Not ideal.  

Mobile Apps (and in fact, most apps) should be very picky about the data they transfer, and should always aim to be highly performant and optimised from a data perspective, only fetching what is required.  PowerApps especially is a connection-based tool - it does not (primarily) store data in the app, but relies on data stored in data sources - therefore, traffic between the app and the source is of primary concern.

 

Optimisation is usually achieved by building queries that support filtering and refining data at the source so that your app just receives the data it needs for your user to consume/interact with.  These queries are effectively "delegated" to and executed by the source.

Queries (or sources) that don't support delegation behave differently and this behaviour can negatively impact your user experience dramatically.

There are two key problems that arise with non-delegable queries or sources;

  1. Accuracy
  2. Performance

To try and illustrate this, let's assume you're applying some sort of filter query to a SPO list that has 10 000 rows in it.  Based on your filter, you're expecting 10 rows to come back from your query.

The 10 rows you're looking for are sitting inside your 10 000 row dataset as follows;

  • 1 is found within the first 500 rows of the 10 000
  • 4 are sitting somewhere between row 501 and row 2000 
  • 4 are sitting somewhere between row 2001 and row 6000 
  • 1 row in sitting somewhere between row 6001 and 10 000

Consider this delegable example with a data row limit of 500;

  1. You run a query to SPO using a delegable filter function.
  2. PowerApps sends the query to SPO
  3. SPO runs the filter on the entire dataset of 10 000 rows and only returns your 10 rows of data that match the filter. 

10 rows are returned from the query.  This is the correct result and the one you want.

 

When you send a non-delegable query from Power Apps to the source, PowerApps replaces it with the equivalent of

FirstN(yourDataSource, n)

where 'n' is your configured 'data row limit'.

The source will therefore just dump/return the first n rows.  No filters and no refinement get applied when this happens, so you will just get the first 500 rows of your data. 

PowerApps will then apply your original non-delegable query against that subset of data now sitting in your app session. 

This means you would be pulling more data than you need, potentially slowing down the user experience and (for mobile devices) incurring unnecessary data costs, and on top of this you could be getting inaccurate results because your query is being run against an incomplete data set. 

 

Consider the same example as above with a non-delegable query;

  1. Same SPO list with 10 000 rows in it.
  2. You run a query to SPO using a function that is non-delegable, but you still expect the same 10 results to come back.
  3. PowerApps asks SPO for the first 500 rows of data.
  4. PowerApps then applies your expression to the 500 row dataset that was returned and finds 1 result.

So instead of finding 10 results from the full 10 000 checked, you're now only getting 1 result from the first 500 checked.  On top of this, instead of just getting 10 rows back from SPO, PowerApps is getting 500 rows, and still returning an inaccurate result.

 

Consider the non-delegable response if you increase your row limit to the max, 2000.

  1. SPO still ignores the filter expression and returns the first 2000 rows of data.
  2. PowerApps then runs your filter expression on the dataset that was returned and displays 5 results instead of 10.

Once again, instead of just getting 10 rows back from SPO, PowerApps has to get 2000, and then it still doesn't provide you with an accurate result because there are only 5 rows matching your query within the first 2000 rows of your data.

 

The intention with data row limits and being able to increase them is not so you can suck in bigger datasets to run non-delegable queries against - it's there mostly to increase the size limit of valid data returned - i.e. something that your source has already filtered (so let's say instead of 10 results, you were expecting to find 600 - PowerApps would have capped the returning result at 500 thanks to the data row limit - increasing it can resolve this issue).  Increasing this can still slow down your app though - hence the warning, so do it with care.

 

Kind regards,

RT

View solution in original post

4 REPLIES 4
RusselThomas
Community Champion
Community Champion

Hi @twister ,

Dropdowns and ComboBoxes work differently in terms of how they query the source.  ComboBoxes have an additional "Search" capability, so the actual query going to the source is a Search() function.

This means, you will always get the Delegation warning with ComboBoxes that have search enabled for sources that don't support Search() as a delegated function.  If you don't need the "Find Items" capability of a combobox, then you can disable this by setting the IsSearchable: property to false and you should see the delegation warning disappear - if you do need it however, then you will be stuck with the delegation limitation (on a ComboBox anyway).

The other alternative is to use a dropdown, or build your own "dropdown" using a text input and a small gallery, but instead of being tied to the builtin Search() of a combobox, you can instead use the Filter() function.

Kind regards,

RT

twister
Post Partisan
Post Partisan

thanks for info but I also got delegate warning on App maybe due to deep linking function? What is the problem exactly? I have no idea on this warning..

 

twister_1-1620040396596.png

 

 

twister_0-1620040373160.png

 

twister_2-1620040461884.png

 

RusselThomas
Community Champion
Community Champion

Hi @twister ,

It's just a warning - you will always get it when you increase the default data row limit size.  You can choose to ignore it, but you should know the implications of doing so.  You won't get rid of the warning unless you set your limit back down to 500.

 

The intent behind this setting is to limit and minimize data transfer wherever possible - apps, especially mobile apps, are not supposed to be transferring huge amounts of data around.   Imagine you run the equivalent of a "Select * from" against a SQL table that contains terabytes of data from a mobile device?  Not ideal.  

Mobile Apps (and in fact, most apps) should be very picky about the data they transfer, and should always aim to be highly performant and optimised from a data perspective, only fetching what is required.  PowerApps especially is a connection-based tool - it does not (primarily) store data in the app, but relies on data stored in data sources - therefore, traffic between the app and the source is of primary concern.

 

Optimisation is usually achieved by building queries that support filtering and refining data at the source so that your app just receives the data it needs for your user to consume/interact with.  These queries are effectively "delegated" to and executed by the source.

Queries (or sources) that don't support delegation behave differently and this behaviour can negatively impact your user experience dramatically.

There are two key problems that arise with non-delegable queries or sources;

  1. Accuracy
  2. Performance

To try and illustrate this, let's assume you're applying some sort of filter query to a SPO list that has 10 000 rows in it.  Based on your filter, you're expecting 10 rows to come back from your query.

The 10 rows you're looking for are sitting inside your 10 000 row dataset as follows;

  • 1 is found within the first 500 rows of the 10 000
  • 4 are sitting somewhere between row 501 and row 2000 
  • 4 are sitting somewhere between row 2001 and row 6000 
  • 1 row in sitting somewhere between row 6001 and 10 000

Consider this delegable example with a data row limit of 500;

  1. You run a query to SPO using a delegable filter function.
  2. PowerApps sends the query to SPO
  3. SPO runs the filter on the entire dataset of 10 000 rows and only returns your 10 rows of data that match the filter. 

10 rows are returned from the query.  This is the correct result and the one you want.

 

When you send a non-delegable query from Power Apps to the source, PowerApps replaces it with the equivalent of

FirstN(yourDataSource, n)

where 'n' is your configured 'data row limit'.

The source will therefore just dump/return the first n rows.  No filters and no refinement get applied when this happens, so you will just get the first 500 rows of your data. 

PowerApps will then apply your original non-delegable query against that subset of data now sitting in your app session. 

This means you would be pulling more data than you need, potentially slowing down the user experience and (for mobile devices) incurring unnecessary data costs, and on top of this you could be getting inaccurate results because your query is being run against an incomplete data set. 

 

Consider the same example as above with a non-delegable query;

  1. Same SPO list with 10 000 rows in it.
  2. You run a query to SPO using a function that is non-delegable, but you still expect the same 10 results to come back.
  3. PowerApps asks SPO for the first 500 rows of data.
  4. PowerApps then applies your expression to the 500 row dataset that was returned and finds 1 result.

So instead of finding 10 results from the full 10 000 checked, you're now only getting 1 result from the first 500 checked.  On top of this, instead of just getting 10 rows back from SPO, PowerApps is getting 500 rows, and still returning an inaccurate result.

 

Consider the non-delegable response if you increase your row limit to the max, 2000.

  1. SPO still ignores the filter expression and returns the first 2000 rows of data.
  2. PowerApps then runs your filter expression on the dataset that was returned and displays 5 results instead of 10.

Once again, instead of just getting 10 rows back from SPO, PowerApps has to get 2000, and then it still doesn't provide you with an accurate result because there are only 5 rows matching your query within the first 2000 rows of your data.

 

The intention with data row limits and being able to increase them is not so you can suck in bigger datasets to run non-delegable queries against - it's there mostly to increase the size limit of valid data returned - i.e. something that your source has already filtered (so let's say instead of 10 results, you were expecting to find 600 - PowerApps would have capped the returning result at 500 thanks to the data row limit - increasing it can resolve this issue).  Increasing this can still slow down your app though - hence the warning, so do it with care.

 

Kind regards,

RT

twister
Post Partisan
Post Partisan

very nice of info with example..very2 clear and appreciate it..

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (751)