REST API aggregates

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

2 Likes

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

No Thank You Lol GIF by Max

1 Like

Yeah, but when you want to limit the amount of data over the wire, it matters…

1 Like

I’m a no limits kind of guy.

Water Fail GIF

2 Likes

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 :frowning:

"value": []

Yeah… That is what I figured. I have it working as you describe, just not happy with the imposed limit… :frowning:

1 Like

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.

1 Like

Sigh…
Well, luckily there are many ways to accomplish tasks in Epicor, so I am not lost, but this is disappointing.

1 Like