Table Load More not loading all Records

  • 3
  • Problem
  • Updated 3 months ago
  • Solved
  • (Edited)
I have a table that is loading Campaign Members, the model had a LIMIT of 20. There were 106 members in the Campaign and Skuid was only (eventually) loading 66 when clicking Load More. 

I looked at the table SOQL and discovered that there were two reasons why this was happening:
A. The first load more was using an OFFSET that was double the LIMIT. So if the limit is 20, it initially loads with no offset and then load more loads an offset of 40 instead of 20.
B. If there is no ORDER BY specified, OFFSET doesn't work properly in soql.

When I added an ORDER BY it loaded 86 (point A) and as I kept lowering the LIMIT it was increasing the amount that was eventually loaded with Load More (point B).

Interestingly, on my Account table Load More seems to increase the soql LIMIT to 10000, so perhaps the issue would not exist there.
Photo of Menachem Shanowitz

Menachem Shanowitz

  • 1,094 Points 1k badge 2x thumb

Posted 5 years ago

  • 3
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,968 Points 20k badge 2x thumb
Menachem;
This is an issue we see from time to time and seems to originate direclty from the Salesforce's Standard Set Controller.  Its happening beneath anything that Skuid can control. 

We have usually been able to create a workaround though.  If you add a second field to your model "default order by" property it seems to reliably return the correct number of values. The code we put there was:  

We are exploring with Salesforce and others whether this issue is in their code or our implementation.   We hope to have it fixed soon, but in any case the workaround is available for you and should solve the immediate problems you were facing. 
Photo of Jaime

Jaime

  • 1,230 Points 1k badge 2x thumb
Hey Rob,

Is there an update on this issue? 
Photo of Paul

Paul

  • 864 Points 500 badge 2x thumb
Hello,
I'm seeing this behavior despite having several fields in the "Fields to order records by" field on the model.  If I put the max at 200, I get a resultset of 142.  If I put 80, and "load more", it gives me 136 with no option to load the missing 6.

If I search, the missing records will come back in the result, but are otherwise lost to the user.

Any suggestions?

Thanks,
Paul
Photo of Khamla Phimmachack

Khamla Phimmachack, Official Rep

  • 1,988 Points 1k badge 2x thumb
Paul,
I was not able to reproduce this problem in our latest version of Skuid. Can you tell us which you are on? Also, can you copy and paste your page XML here for us to investigate further?
Photo of Paul

Paul

  • 864 Points 500 badge 2x thumb
It's a lot of custom fields, some of which are a bit revealing in a way I'm not comfortable sharing here - can I email it to you?
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 12,352 Points 10k badge 2x thumb
Hi Paul, I wanted to see if you could grab the model's SOQL query. That's available by opening the browser's developer console, and entering the command skuid.model.map(), then clicking on the model you're troubleshooting. The SOQL statement should be within, and if you copy and paste it into Salesforce's Developer Console and execute the same query, it might tell us something about why you're seeing the behavior. 
(Edited)
Photo of Dave

Dave

  • 6,572 Points 5k badge 2x thumb
Hi Mark, I have the same issue.
If I sort by a specific Field and Load More it only loads 9 more records(model loads the first 200 by default)  but there are 70 more which are supposed to be loaded...
If i remove that sort order or use a different field , it seems to work no problem.

I entered the SOQL Statement in the Dev Console and it returned all 270 records perfectly.

I am on a older version of Skuid (10.0.23) but never had this issue with any other table as far as i know..


Photo of Dave

Dave

  • 6,572 Points 5k badge 2x thumb
adding the ID as 2nd sort seems to have fixed issue, thx
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 12,352 Points 10k badge 2x thumb
Official Response
Hi Dave. I've heard of some similar behavior in the past though I've not seen it happen myself. The recommendation in those cases was to sort by a field that's always unique, like the record's unique Id field. I think you can do this in addition to other 'sort-by' fields you need. Can you try this out and let me know if there's a difference in behavior? I might also recommend getting a sandbox spun up on a newer release of Skuid to see if the behavior is different.