30 Apr’19

D365 Business Central, Dynamics NAVRole Center(Dashboard) taking forever to Load? Let’s find out why and how to optimize!

Introduction:

Have you ever faced the issue of the Dashboard taking forever to load? If yes, then did you inspect the reason why?
Anyways, the Dashboard loading times dependent upon the calculations used to generate the figures on each of the dashboard tile. Most of the times the calculations are so tedious that the results involve querying multiple tables with multiple filters.

Let’s see how we can optimize the Dashboard load times.

Pre-requisites:
Microsoft Dynamics NAV / Business Central.
Development Environment or NAV.
VS code with AL Language Extension for Business Central.
Solution:
1. Figuring out which all tiles required real-time calculations VS non- real-time. Thus, by separating real-time from non- real-time, we can differentiate the execution patterns.
For eg: No. of Open Invoices VS Average Cost of an Open Invoice.
2. Settings different execution styles for Real-Time and Non-Realtime:
i. Real-Time Calculations are trigger whenever we open the Dashboard i.e OnOpenPage Trigger on Role center page
ii. Whereas Non-Real time can be set up as Job which refreshes every 5-10 minutes.
3. Setting the Dashboard Source of Data as Tables.
It is easier for the Dashboard to Load the data from Tables rather than executing the query and storing the data as variables and populate data.
4. Setting manual Refresh Button to refresh the data on all the tiles.

Code & Output:

1. Creating the Role Center with Source Table as the Table:
2. Trigger on OnOpenPage to modify the values in the Source Table with new real-time values:

 

3. Create a Codeunit which run as a Job every 5 – 10 minutes and store the data into the Source Table:
Creating Codeunit to be executed as a Job.

Setting Codeunit on Job Queue Entries

 

4. Output:

 

Conclusion:
Thus using the optimization by using Table as the source of data for Role Center, we can reduce the load time exponentially to get a good performance. As per facts are concerned, in reality, the change in the load time was from 2 minutes 10 seconds to 15 seconds after the optimization.Happy Blogging! 🙂
Written by

Olister Rumao

Software Engineer

Leave a Reply

Your email address will not be published. Required fields are marked *

Want to streamline your business processes?

  • This field is for validation purposes and should be left unchanged.

Recent Articles

  • Expenses in PSA for Fixed Bid and T&M contracts

    23 August’ 2019

    Problem Definition: One of my clients decided to use Expense module in PSA and to his surprise he could see the amount v...

    Read more
  • Setup Dockers

    23 August’ 2019

    Docker is an independent container platform that enables organizations to seamlessly build, share and run any applicatio...

    Read more
  • Qualify Lead in D365 CE: Select which entity records should be created

    20 August’ 2019

    Wave 2019 Updates brought some really sought-after features. Another one which I would like to bring up is the Lead Qual...

    Read more
  • Early Opt-in for October 2019 Wave 2 Updates

    20 August’ 2019

    August 2, 2019 was when the Wave 2 Updates were to be out. And here we are! By now, you should have gotten the option to...

    Read more
  • Setting Unified Interface App Icons

    20 August’ 2019

    Default App Icons for typical D365 environment look like these.But here’s what you can do to change these to put...

    Read more
  • We respect your privacy.
  • This field is for validation purposes and should be left unchanged.