TableRecord taking more then 4 min to load

TableRecord taking more then 4 min to load

  

Hello

I am trying to display a table record that receive a variable with 24 attributes. That table have some conditions, CSS, JS to collapse and expand based on the father-child relation between registers.

With all this executing the function to create all data takes around 10s-15s then put the information in the screen takes like 4 minutes. That is not acceptable.

I created a clean screen with the same function to create data and a table that receive only the pure data from the variable. No JS, no CSS, no if conditions. This process takes around 55s

When I am debugging, I have like 1470 table rows inside the table and inside each table row, I have 24 attributes.

My question is: Is there a way I can optimize the time OutSystems take to refresh the table in then screen?

Regards

Do you need all 1470 rows on screen at the same time? Is there some reason you can't paginate them and show 50 rows at a time that you have to click through? You might be able to shorten the time, but 1470 rows on a single page load really is a big ask.

if retrieving the data from database is taking time, you can cache your query using Aggregate or Adcanced Query attribute - "Cache in Minutes" or you could reduce the record display to lower number by using the "Max Records" attribute.

Hi Carlos,

I agree with you that such loading times aren't acceptable for a user, but I also agree with Jordan that such a huuuge data set combined with all kinds of screen rules is really insane (ok, that's not his wording, that's mine :)). You probably have an exploded view state, and tens of thousands of conditions running. You really need to trim the screen down.

And this would be a perfect place to use the List Navigation Rich widget. 

Hi Carlos,

You can check out this post for more information about outsystems applications and view states to make the problem you're facing more clear:

https://www.outsystems.com/forums/discussion/10458/view-state-in-outsystems-applications/#Post35365

Hope it helps,

Justin

Jordan Welch wrote:

Do you need all 1470 rows on screen at the same time? Is there some reason you can't paginate them and show 50 rows at a time that you have to click through? You might be able to shorten the time, but 1470 rows on a single page load really is a big ask.

The thing is that for a client perspective he only see 9 or 10 “budget structures accounts” when he clicks on icon "+" that will expand and show inside that structure like 10 father accounts and when click in "+" of one of that accounts it will show like 30 child accounts. Each of that child account are in database with values for each month of the year, all other structures above are calculated based on the value of that children.

Eg. I have like 10 child structures in 2 different father structures with 1 euro in each month, his fathers will have 10 euros in each month and the budget structure of that Fathers will have 20 euros in each month.

240-20-20-20-20…

120-10-10-10-10…

12-1-1-1…

120-10-10-10-10…

12-1-1-1…

All this information is calculated before inserted the table record in the screen so I think that is not a problem. It takes around 15 - 20s.

So for client perspective there is no point in having a list navigation widget or pagination but thank you for your suggestion.


I think you will need to implement an on demand load. Rather than loading all 1470 rows upfront just load the "father" accounts and when those are clicked load the child accounts. If you use webblocks to display the children that should be fairly easy to implement. You should also be able to do it on a cached basis so that you load the child on the first click but when you close and open again it is already loaded. 


Some of the treeview components in the forge could be used to do this and have on demand or "lazy loading".


John Williams wrote:

I think you will need to implement an on demand load. Rather than loading all 1470 rows upfront just load the "father" accounts and when those are clicked load the child accounts. If you use webblocks to display the children that should be fairly easy to implement. You should also be able to do it on a cached basis so that you load the child on the first click but when you close and open again it is already loaded. 


Some of the treeview components in the forge could be used to do this and have on demand or "lazy loading".



Hello,

 

I will try this approach and see what it looks like.

 

Thank you