Role Center(Dashboard) taking forever to Load? Let's find out why and how to optimize! - CloudFronts

Role 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! 🙂

Share Story :

Secured By miniOrange