web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Product Configuration Model - Performance Advise

(0) ShareShare
ReportReport
Posted on by 135

Hi Community,

So i built a medium sized Configuration Model for a Customer (6500 Attributes, 50 Table Restrictions, 25 Sub Components, lots of Calculations) and we re experiencing real Problems with Performance. To start up the Model and the first initiation in regards to, what to show and what to hide from the start off it takes up to 2 minutes to apply all the rules.

Now i know the Cache does SOME work in performance increase, but maybe some of you have other advise. It would be much appreciated.

regards. Ruben

*This post is locked for comments

I have the same question (0)
  • Yves Y Profile Picture
    55 on at

    Hi Ruben,

    When working with product configurator, you should have R3 version to make sure you work with latest version of caching mechanism.  If you have R2, make sure you have at least hotfixes provided by KB2969969.

    Some perfomance issues can be caused by tree redraw.  You can declare an integer variable in PCRuntimeConfigurator class and use dispose method to display the content of it to infolog.  The variable can be incremented in class PCRuntimeUIConfigurator (method componentModifierChanged).  If the tree is redrawn more than 2 or 3 times, then you should consider doing a customization to minimize these redraw.  A suggestion here would be to use setTimeOut to do a redraw only once at the end of the loading process.

    Another time consuming task is within PCRuntimeConfigurator.parseXmlModel.  Even if XML caching option is activated, it can take many seconds to parse XML structure to build an instance of runtimeModel.  Again, a customization can be useful.  A suggestion here would be to use Infolog.globalCache() to store and reuse an instance of runtimeModel.

    Hope this helps.

    Yves

  • new_axys Profile Picture
    135 on at

    Hi. Thanks - there is some usefull advise. I think my biggest Problem is a massive Calculation which has about 40 "if"s in it :D its hard though to work around, tough request by the customer .

    I now geat System.out.of. memory all the time , its very frustrating and simply can not be debugged.

  • Yves Y Profile Picture
    55 on at

    I don't know if it's possible to debug this part since we don't have access to the source code of product configuration dll.

    Have you already considered using custom x++ code to replace the calculation ?  In class PCRuntimeConfigurator (method valueChangedEventHandler), you could catch a specific attribute, call your custom method, and then call method assignAttributeValue to send back to the dll another attribute value.

    Just keep in mind that inserting customizations in this area can lead to performance degradation and/or instability.

  • new_axys Profile Picture
    135 on at

    are the attributeInstanceId´s static ? so i simply debug, identify the attributeInstanceId and write my code?

  • Yves Y Profile Picture
    55 on at

    AttributeInstanceId are not static.  They can be different after clearing xml caching.  And they are not the same across multiple environments.

    You will need to check attribute name through runtimeModel.getAttributeFromId().  However, an attribute name is not necessarily unique within a model.  So you may need to customize class PCRuntimeAttribute and/or PCRuntimeXMLParseAttribute to add more info (ie extended solver name) in attribute class.

    You may also need to customize PCRuntimeModel because you will need a way to get attribute id from an extended solver name.  Id is required when calling AssignAttributeValue for attributes affected by custom calculations.

  • new_axys Profile Picture
    135 on at

    thank you for that. in our case, the values to be calculated are in the MAIN component, so there kinda unique.

    i have coded all day yester day :D couldnt debug though, still getting system out of memory for no obvious reasons :D will inform if solution found

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

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans