Customization Very Slow to Load

The Dashboards go a little haywire, they try and detect the LastPanel to give it focus. So go to your dashboard and it might take a few attempts, but make sure when you run the dashboard it should load with the focus on the 1st tab! 1st panel

I notice as soon as you launch your customization it re-arranged tabs a bit. That may contribute to it because the MainController tries to detect the LastPanel to give it focus and your focus goes into

2018-11-07_1221
then that gets taken away and squeezed into another tab which is probably messing with the PaneActivated and Paint events, try going to the dashboard clicking on tab 1 and hitting save in attempts to refresh the dashboards definition:

if you have SQL Studio you can check if your definition updated by querying:

SELECT CAST(DashboardSchema AS XML), * FROM Ice.DashBdDef WHERE DashBdDef.DefinitionID = 'PUT_IN_YOUR_DashboardIDHere'

Then you will be able to click on the Column and it’ll show XML:


Search for LastPane

Then once its updated Re-Deploy and clear your cache in C:\ProgramData\Epicor


PS: I always struggle with the Layouts in a Dashboard, one wrong click and the entire GridLayout goes Kaboooom! So I ended up modifying it through SQL (Make sure you escape single-ticks ’ find-replace with ‘’)

WARNING: If anyone ever uses this method, make sure you know what you are doing =) also backup your dashboard.

dashboard_modify_xml.sql (1.3 MB)

If that fails then we go to NProfiler to determine truely what and who is causing the slowness - Guide from Epicor.

@Chris_Conn check it out - I think its just not called NProfiler anymore. #google

In NProfiler you can pick Windows Application - so you can Profile the Epicor Client by picking Windows Application instead of Web.

It will break-down the Client Method calls and time taken. So UIApp methods, Adapter Methods, Framework Methods, Windows .NET Methods…

NP_Profiler_Quick_guide.zip (5.0 MB)

2018-11-07_1245

it’ll narrow down to the UI Element how long each took to create itself, paint etc… I am sure @Bart_Elia knows a lil more about NProfiler; I’ve used it vaguely.

3 Likes

Nice, i like it.

So, I finally had time to try this. Here are my results. I have no idea what to do with them :confused: Epicor_2018-12-27_23-15-13.zip (1009.1 KB)

Any new ideas on this? I am still struggling?

Take 30 minutes and go to your Customization and Save it as test by using the File -> Save As …

Then the “test” version - customization you start stripping 1 piece at a time. Example:

  1. Delete a small portion of code / some functionality, save, test it
  2. Repeat chewing away small portions until the “lag” behaviour is gone

Just a process of elimination, and once you hit that “oh its all fast” you might have found the culprit. This includes UI Elements, start deleting 1-5 UI Elements and save, test it, repeat.

I did all of that. Ended up having every line commented out and it still loaded very slowly. I have it narrowed down to it drawing the sheets.

Can you remind me which version of Epicor are you on?

Now start stripping the custom sheets away, 1 at a time… get rid of 1… save, test… keep going =) to see if its 1 specific Sheet.

Perhaps 1 query is causing the issue. Have you profiled all of your queries?

@Chris_Conn I wonder if she has a BAQ Combo. But I also believe it could be the Sheets layouts… in 10.2.300 they added a new Property called “Form State” with a choice of Default, Maximized, Minimized and when I pick Maximized - on lets say the Part Form… thing is laggy as hell and you can see it flicker, and load awfully :slight_smile:

Wasnt there a guy who had a Form work super slow and it was like a Panel undocked or docked somehow to another monitor, once he removed the docking all was fine. I wonder if something is not docked properly and the form is literally sending 10000s of Redraw, Repaint or Validating Form Events.

I would suggest again, using @josecgomez method called “Banana Peel” start peeling 1 thing away, save, test, peel another thing away, save test… until you literally are back to the base customization (reverse).

Another Issue I had when I added a Customization to a Dashboard is that the Dashboard always wanted to set “FOCUS” to a Child Tab, Advanced Filter and It was such a pain for it not do and sometimes I got object disposed errors, lag, slow choppy behaviour… I gave up and just went to SQL and modified the Dashboard XML and then it didnt try to hijack my Customization on _Load

A shot in the dark, but do you happen to have any custom EpiCombo controls added? One that’s bitten me before is a CustCnt combo without SearchFilter.

I am on version 10.1.600.21. This has been happening since the beginning when I only had one custom sheet. It hasn’t changed as I have added sheets.

I have run all of the queries and none of them are erroring out. It is only during the beginning launch that it is slow. Once you launch it and click on each tab to load it, everything runs normal and fast.

I was just curious because if Refresh On Load is set, you are querying all of the queries unfiltered on startup

It is every custom sheet that loads slowly. There is a video in the beginning of this post where I recorded what it does. There you can see it is literally every custom sheet that takes freaking forever to redraw.

Right, but they all may be loading slowly because of 1 sheet, being a bad apple affecting the whole bunch… so still banana peel every sheet away, 1 at a time.

There is only one query attached to the Base DAshboard. All of the rest of the BAQ’s are Data Views in the Customization or are Dynamic Queries. I had every piece commented out and it still loaded slowly.

I will do it but I have literally remade every sheet like at least 2 times to try and figure this out. Started with a fresh sheet everytime.

All queries just the same though