cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
GregLi
Power Apps
Power Apps

New Analysis Engine

Similar to the dependencies between cells in a spreadsheet that drives recalc, Canvas apps depend on understanding all the dependencies between properties of controls so that data can flow between them properly and efficiently.  We call this process "dependency analysis" and it is something that Studio is doing all the time in the background while you are editing an app.

 

For more than a year, we have been rewriting the analysis engine to both perform better and to optimize the results.  The result is that complex Canvas apps that can take minutes to load should load significantly faster.  It is a major change, at the very heart of Canvas apps, that we have been working on for over a year.

 

We are very excited to announce that this feature is now available as an experimental feature for your testing and feedback.  Please make a copy of complex apps, turn on this setting, see if you run into any problems in Studio and at runtime, and provide feedback here in the forum.   

 

Do not use this feature in production!  There could be subtle behavior differences that will take time to discover, just because the app loads and saves doesn't necessarily mean all is well, some testing is needed too.

 

Thank you!  And with your help we hope to turn this feature on for everyone soon.

 

GregLi_1-1701804999605.png

53 REPLIES 53
AnthonyLin
Regular Visitor

A lot faster but definitely some behavioral differences
jbrutman
Frequent Visitor

I noticed one major difference, but otherwise everything is smooth. Below was the problem and how I solved it

 

On form submission, I used the following code in the first line of the form's OnSuccess property:

UpdateContext({locLastSubmit: FormName.LastSubmit})

 

After this, I go on to update/create some children records, however, it was struggling using locLastSubmit as the value. I added the code below to Line 2 and now it does not have issues:

UpdateContext({locLastSubmit: LookUp([@DataverseTableName],ThisRecord.Identifier = locLastSubmit.Identifier)});

 

I had to do this to three different forms that all have children records which require updating/creating after the form is submitted successfully. Really a minor issue, but thought it prudent to report it.

FYI, the app I created/maintained is quite complex (14 screens, 23 custom data tables, 4 built in data tables, 87 collections). It was getting to a point where I had to refresh the editor every 20 min or so as it would slow down significantly. So far, this change seems to have a significant improvement on the editor. Thank you!

@AnthonyLin , Would please provide more details about the differences that you saw?

@jbrutman Thanks for the details. Would you be able to share the app (.msapp) to further investigate the issue? You can send me the file in a message.

NateF
Frequent Visitor

I experienced a major issue yesterday that was resolved after I turned off the New Analysis Engine. In Power Apps Studio, using authoring version 3.24012.8, I could create collections and use them as data sources for galleries using the items property, but the collections never appeared in the list of available data sources. Similarly, collections (edit: collections created before enabling New Analysis Engine) I completely removed every reference to remained in the data sources list even after dropping off of the collections section of the variables tab.

 

After publishing the app and opening it in the web player, in the Android Power Apps app, and through Teams, the galleries using the collections created after enabling the new analysis engine were not populating. When I hard-coded a table (example: '[{ID:1,Data:[{Datum: "A"},{Datum: "B"}]}]') into the items property of a gallery that wasn't populating then re-published the app, the gallery populated successfully.

 

Using Monitor, I could see Collect, ClearCollect, Remove, and Patch all worked in the background. The only issue was the app failing to update its list of data sources.

Hi @NateF , Thanks for using new analysis engine.  With new analysis engine, collections don't show up in the list of tables in UX for gallery binding. We are aware of this issue. I didn't understand the other issue that you mentioned. Can you please share repro steps on how I can recreate the issue on my end? This will help the team to investigate it better.

Sure thing, @ShantanuP ,

Sorry for the lack of clarity. I meant to bring up only one issue and share some of the symptoms of that one issue.

 

The issue I observed is after enabling the new analysis engine, the data sources list is not updating as I create or remove collections from the app. Because the data sources list does not include collections created after enabling the new analysis engine, the galleries using those collections do not populate outside of Studio.

 

Immediately after disabling the new analysis engine and re-publishing the app, the data sources list updates and the galleries using the new collections created while the new analysis engine was enabled successfully populate outside of Studio.

 

I was able to reproduce the issue in a new blank canvas app following the steps below. I stopped at step 21 in the attached .msapp file so you can see the issue with the removed collection still appearing in the data sources list and the new collection failing to appear in the data sources list.

 

Steps to reproduce:

1. Create a new blank canvas app. Do not enable the experimental new analysis engine.

2. In App.OnStart create a collection

ClearCollect(BeforeEnablingExperimentalNewAnalysisEngine, "A", "B", "C")

3. On Screen1 insert a blank gallery control

4. Set the Items property of the gallery control to the collection created in step 2

BeforeEnablingExperimentalNewAnalysisEngine

5. Add a label to the gallery template

6. Set the Text property of the label to ThisItem.Value

ThisItem.Value

7. Save and publish the app

8. Open the app outside of Studio to verify the gallery is populating the collection (I used the web player for this repro)

9. In Studio, enable the experimental new analysis engine.

10. Save and publish the app

11. Refresh the page

12. Remove the ClearCollect formula from App.OnStart

13. Remove the collection reference from Gallery1.Items

14. Look in the variables tab -> collections. The collection is gone.

15. Look in the data sources tab. The collection is still showing as a data source.

16. In App.OnStart create a new collection

 

ClearCollect(AfterEnablingExperimentalNewAnalysisEngine, "D", "E", "F")

 

17. Set Gallery1.Items to the collection created in step 16. The gallery populates in Studio.

AfterEnablingExperimentalNewAnalysisEngine

18. Save and publish the app

19. Open the app outside of Studio. The gallery does not populate.

20. In Studio, look in the variables tab -> collections. The new collection is there.

21. Look in the data sources tab. The old collection we removed every reference to is still listed as a data source while the new collection is not in the list of data sources.

22. Disable the experimental new analysis engine

23. Save and publish the app

24. Refresh the page

25. The data sources list has updated

26. Open the app outside of Studio. The gallery populates with the new collection.

We are using a global variable named 'defaults' (record e.g. defaults.primaryColor, set to Color.Blue) to set various colour fields on controls automatically so I don't need to use blueprint controls. We use this across several Apps and component libraries.

 

When I copy an App, switch the New Analysis Engine on in settings, we get several errors that seem to indicate PowerApps is not a fan of this defaults variable. However, if I edit the variable in App.Formula, it fixes the issue until I next load the App, when the same thing happens.


I was hoping that this was not now a reserved word. If it was, then would editing really fix the errors?! Unless I can find a solution, this means I cannot switch on this setting, and therefore cannot use the new App.Formula functions, that require the new engine, without amending all our Apps and Component libraries.

Authoring Version: 3.24015.12 (Have tried the latest version: 3.24022.7 without success)

 

Any help would be gratefully received.

Thanks

A quick freebie...

fxAddWorkDays(FromDate:Date, Days:Number):Date = IfError(
    With(
        {
            wDOW: Weekday(Today(), StartOfWeek.Monday),
            wDays: Abs(Days)
        },
        If(
            Days = 0,
            FromDate,
            Days < 0,
            DateAdd(FromDate, 0 - (RoundDown(wDays / 5, 0) * 7) - (If(wDOW > Mod(wDays, 5), Mod(wDays, 5), Mod(wDays, 5) + 2))),
            DateAdd(FromDate, (RoundDown(wDays / 5, 0) * 7) + (If(wDOW + Mod(wDays, 5) > 5, Mod(wDays, 5) + 2, Mod(wDays, 5))))
        )
    ),
    Blank()
);

Thanks for testing it out! Sounds like a bug. Can you attach a copy of an app that shows the issue? 

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 (1,277)