Can someone explain to me the Dataverse delegation behavior I'm seeing here?
I am preparing to do an update of multiple records without knowing the primary keys, so I need to perform a lookup for each record by the effective composite key (Plant, Sample Location, Sample Date, and Sample Hour) and I can't for the life of me figure out why I sometimes am and sometimes am not getting a delegation problem trying to use attributes of the update collection.
As an additional note: I get the exact same behavior in other looping mechanisms (e.g., AddColumns instead of ForAll).
Issue 1: Sample Location (Id)
When I tried to filter with:
Record.'Sample Location'.'Sample Location' = Update.SampleLocation.'Sample Location'
it failed to delegate. For some reason, using AddColumns to flatten the ID directly onto the Update object fixes this problem, despite the fact that the data type isn't changing and I can't really think of anything else that is materially different.
Issue 2: Sample Date
I can't seem to get around this problem. For some reason, it refuses to delegate a date filter for a property of the Update itself. You can see that if I take one of the values and put it in the context (as "test"), it will delegate that just fine, so it's not a data type issue. Furthermore, you can see that it will delegate other Update attributes, like TestHour (which is a whole number).
I can sort of get around this problem by pre-filtering the existing samples using everything but date. This is better, but is still pulling more data locally than should be necessary and will eventually stop working if the number of samples matching on everything but date ever exceeds the data row limit.
You are not always given the yellow triangle warning. The issue might be continuing with or without a warning. Sometimes a warning is not given at all. For example, simply using ClearCollect by itself gives no warning. However, you should note that the function itself is subject to the data row limit even with no warning.
Try these steps
1. Click Settings
2. Scroll down a bit and check the Data row limit . Change it to 1 temporarily.
Now try your queries. If you get only one result and expect two or more, you know the data row limit is applying.
Note that there are also other kinds of limits as well depending on the kinds of controls or methods used. For example, note that a Collection populated by using a single call to ClearCollect is subject to the data row limit despite all inner statements being delegable, because ClearCollect by itself is subject to the data row limit. To test it more effectively and try to isolate the cause to delegation, use the Items property of a Gallery, since there may be other limits when using something else.
Try the above and see if you are getting intermittent results between one result and the expected number of results, or are always getting just one result.
I think you're getting hung up on my workaround. The real question is: why isn't using the Update SampleLocation.'Sample Location' or SampleDate delegable? I can't think of good reason why they shouldn't be, since they are fully materialized locally before entering the ForAll function.
Does enabling this feature help? Settings -> Upcoming Features - > Record scope one-to-many and many-to-many relationships (if it does not help, turn it back off)
@paulhaagsefa wrote:: why isn't using the Update SampleLocation.'Sample Location' or SampleDate delegable?
Did you check with the steps I gave? Note that even if you remove all yellow triangle warnings from the editor, there may still be a data row limit issue or something is still non-delegable. Is it really intermittently working where it is always delegable when the warning is not shown. and not delegable when the warning isn't shown? Or is it the case that even when it doesn't show yellow triangle warning it's still also non-delegable?
Although I have not seen this happen, also check to see and be sure if the yellow triangle warning is given, but there is no observable issue in there being less returned results than expected.
Note that the absence of the yellow triangle does not guarantee that the data row limit is not applying in some way and the best way to be sure is to lower that data row limit to 1 and test from there. Note that the yellow triangle warning does not always show up and there are cases where it never shows up (intended behavior) yet the data row limit is still applying and/or there is still something non-delegable in there, even with no warning. It's up to you to lower that data row limit to 1 and test with sufficiently large enough samples to make sure some sort of limit is not being triggered in the way you wrote the formula or used the controls. If you want to really be sure, lower the data row limit to 1, and even test with samples of greater than 2000 records to be sure.
Thanks for that suggestion, but it doesn't seem to make a difference for either problem. Especially for the date thing, it should be irrelevant as that has no dependency on a relationship on either side of the equation.
@paulhaagsefa Do you observe a difference in the number of records returned when you try it when use the date and when you don't? I mean when you use the Date are the number of returned results equal to the data row limit when there should be more results, and when you don't use the date the number of returned results are greater than to the data row limit as expected? Is this always corresponding to the presence or absence of the yellow triangle warning i.e. are there always less results than expected when the yellow triangle is present, and are there always the expected number of results when it is absent? (the way to be sure is to lower that limit to 1. Then it returns only 1 result when there is a problem).
One issue could be that even when the yellow triangle has disappeared, it "hasn't" really. If you are getting only one result returned after lowering the data row limit to 1 in all possible versions of your formula with or without the yellow triangle warning, then all versions of the formula you provided, even the workarounds, are affected by the data row limit and either contain one or more non-delegable components or are otherwise triggering the data row limit. I wanted to know this first before I could help you further.
Let's focus on the date one, since that is the one I don't seem to be able to get around and should be more cut-and-dry anyway. If I try to use the SampleDate property of the Update record, the editor always shows a delegation warning and when I test the app it is always not delegated (you can see it requesting all rows in the monitor). When I replace it with a date value literal or something saved in the context, then the delegation warning goes away and it does delegate / filter appropriately.
I guess the title of this question was a little misleading. I don't mean that I am getting different results for the same code, I mean I am getting different results for different code, when it feels like I should be getting the same result (e.g. what is the difference between using a singular date value from the context vs. what should be a singular value from the current record in an iterator?).
@paulhaagsefa It can get complicated because Coalesce, AddColumns, ForAll, possibly a number of other things, and for that matter the outer ClearCollect itself you have are all subject to the data row limit. In this scenario it may therefore make a difference if you are using a literal as opposed to a property because usage of the property may involve the additional traversal of a structure in a non-delegable way. Does another property than a Date work or does it still also produce the delegation issue?
Yes, SampleHour delegates, as does the flattened SampleLocationId.
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!
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
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.
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