Skip to main content

Notifications

Power Apps - Power Apps Experimental Features
Suggested answer

New Analysis Engine

(3) ShareShare
ReportReport
Posted on by

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

Categories:
  • VeGETzX Profile Picture
    VeGETzX 344 on at
    New Analysis Engine

    I noticed something strange with the new Analysis Engine in Power Apps and wanted to share it.

    In the current engine, when fetching data from Dataverse (with explicit column selection on by default), we can use ShowColumns() to make sure all the columns we need are fetched. This is really helpful when we use collections in the code without directly referencing those columns in a control, like a gallery.

    But with the new engine, even if we use the same code, Power Apps doesn’t fetch columns that aren’t directly used in a control.

    This means that apps using collections this way might stop working with the new engine.

    I’m not sure if this is an intended change or just a bug, but I thought it’s worth pointing out.

    Would love to hear your thoughts on this.

     
     
     
    When using monitor, we will see that ShowColumns() doesn't delegate it query to Dataverse
     
  • originalltd Profile Picture
    originalltd 85 on at
    New Analysis Engine
    I tried the new Analysis Engine in our PowerApps App, and it works in some areas, and broken in others.
    Formulas are not showing as an error, until you actually start using them.
    The main issue I get is circular references.
     
    I really hope this isn't going to be enabled by default on existing apps.
  • cipster Profile Picture
    cipster 160 on at
    New Analysis Engine
    Thanks for the fix everyone from Microsoft. I'll wait for after the holidays to enable it, things should be ironed out by then.
  • ParmaSean Profile Picture
    ParmaSean 2 on at
    New Analysis Engine
    How come when I enable this feature it brakes my app. All the pages go from fully functional to non-existant. The screen is just white and I can not seem to figure out why it wont load properly any tips on what that might be. I noticed a couple of things do not work the same way one of them seems to be the Rest() function but that is the only error message I am getting. Any thoughts?
  • MansiM Profile Picture
    MansiM on at
    New Analysis Engine
    gergoe can you please validate if the context variable issue you reported is resolved with the latest fixes in the version 3.24122, which should be deployed to all regions by this week - if it is not in your region yet you may be able to choose it using the version selector from the studio.

  • MansiM Profile Picture
    MansiM on at
    New Analysis Engine
    jeang the width and height property calculation issue during coauthoring should be fixed in the version 3.24122, which should be deployed to all regions by this week - if it is not in your region yet you may be able to choose it using the version selector from the studio. Could you please check whether this fixes your issue? Thank you!

  • IAmIntractable Profile Picture
    IAmIntractable 168 on at
    New Analysis Engine
    I just turned on the new Analysis engine and here are some specifics that should be addressed:
     
    1) I received errors about circular references that have previously worked but the new engine has decided should not be allowed. I agree, the references are circular. Some of the issues others report are undoubtedly caused by this loose to strict enforcement. Microsoft should look carefully to determine if any of this referencing is really an issue as apps have previously worked just fine.
     
    2) A long standing issue still has not been address by the new engine. The engine has issues matching open and closed parenthesis when a parenthesis is present in a double quoted string. For example, attempt to match the very last closing parenthesis and you will see if does not find the correct match:
     
    Substitute(
        If(Find("(", Office365Users.UserProfileV2(Voter).displayName)>0,
            Upper(Trim(First(Split(Office365Users.UserProfileV2(Voter).displayName, "(")).Value))
        , //ELSE
            Upper(Office365Users.UserProfileV2(Voter).displayName)
        ),
        “ zzz", ""
    )

     
    3) For older apps and components where you have defined “Behavior” properties this might impact you. I know this was an experimental feature for close to 4 years but it is now in preview so it's going to be GA sometime soon. Microsoft changed the name of the "Behavior" property type to “Event”, and the new Analysis Engine updated your component configuration accordingly. I opened my oldest app with the new engine and a strange error was reported in some, but not all, event code segments. Note, to clarify an Event Code Segment is code placed into the components event property once the component is added to a screen. It is not coding within the component itself.
     
    The engine reported that it did not like the use of a collection (record type) inside the event code. Experimentation revealed that the default return data type for these event-based properties changed from Boolean to None. I suspect that this may have been done to correct the misuse of Boolean type which would then allow for proper stricter data type enforcement, but other aspects of the platform do not use this approach, so I am not sure. Unfortunately, Microsoft has published little on the changes they made to the enhanced component features. I changed all event properties to have a return data type of “None”, and the errors went away. Also the event code appears to have remained intact despite the data type change (others report the code is being erases with data type changes).
     
    I presume, but would like confirmation from Microsoft, that this was the correct change to make.
     
     
  • leonsig93 Profile Picture
    leonsig93 229 on at
    New Analysis Engine
    Big issue is that we can't seem to pull the value of the selected option within a combo box if the control is within a form.
     
    Meaning:
     
    I have a data card for a document type input using a combo box to display the different types available.
     
    We use cmbDocType_P.Selected.Value to reference the value for functions outside of the form.
     
    Enabling the new analysis engine immediately broke the control and you cannot use .Value as it doesn't exist. Turning the new engine off fixes the issue.
     
    Keeping it off and hoping it doesn't actually go on by default in less than two months.
  • MansiM Profile Picture
    MansiM on at
    New Analysis Engine
    VeGETzX please send a copy of msapp tolesaltzm@microsoft.com to help us investigate, or if you'd rather set up time so we can be aware of dependencies while investigating, please drop me an email at mamali@microsoft.com
  • MansiM Profile Picture
    MansiM on at
    New Analysis Engine
    Jonathan Rogers we can set up time to debug this, please drop me an email at mamali@microsoft.com.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

November 2024 Newsletter…

November 2024 Community Newsletter…

Community Update Oct 28…

Power Platform Community Update…

Tuesday Tip #9 Get Recognized…

Welcome to a brand new series, Tuesday Tips…

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 143,867

#2
RandyHayes Profile Picture

RandyHayes 76,308

#3
Pstork1 Profile Picture

Pstork1 64,174

Leaderboard

Featured topics