Is it possible to use the $apply feature to perform aggregates against BOs? Or, is there any other option without making a BAQ or returning a full dataset?
I dont know with any certainty, but I would doubt it. The OData spec used by Kinetic seems to have been very selectively implemented.
The most advanced feature I have found so far is (in some cases) being able to use $expand
Thanks @Chris_Conn .Then the next question:
If I turn on @count
, I get a maximum of 100 records. If I use the more verbose BO, I can get all records. Is there a way to get all records using oData so I don’t hit the 100 limit? More specifically, I want to use paging. If I pull records 20-39, the @count
returns those records but always tells me there are only 100 records. If I try to return records 101+, it returns nothing.
ODATA
Yeah, but when you want to limit the amount of data over the wire, it matters…
I’m a no limits kind of guy.
Unfortunately
$count ignores any $top, $skip, or $expand query options, and returns the total count of
returned records including only those matching any specified $filter. The total count
cannot exceed the established Row Limit.
How do I increase the Row Limit in this case?
Let’s say I have 500 part records with the following counts in each product group:
Group A: 130
Group B: 110
Group C: 150
Group D: 110
If I use the $filter on the product group, I will only get 100 records using oData currently.
For no reason I can explain, the max is 100, no matter what.
Best you can do is write your own aggregator, basically pull/skip until the array is empty
"value": []
Yeah… That is what I figured. I have it working as you describe, just not happy with the imposed limit…
That sounds very familiar… Is this a host.config setting? Looked and can’t see anthing, but might be somewhere else.
There is a KB for this KB0088837
But as @Chris_Conn mentioned $count does not play by the same rules. Which is annoying.
Interestingly dynamics has a 5000 row limit, to get around it they have a RetreiveTotalRecordCount function.
Sigh…
Well, luckily there are many ways to accomplish tasks in Epicor, so I am not lost, but this is disappointing.