API response is taking 10 to 15 minutes

+1 for the BAQ method! That’s how we do it outside of Kinetic in our integrations. Works well and there’s no speed issue.

3 Likes

Okay I set up the BAQ and he is getting this error:

1 Like

well then tell him to pass a valid API key…

4 Likes

The BAQ must be shared then it’ll show up.

Caveat is if you have set an access scope to the API Key. Then you’ll need to add the BAQ --and other Business Objects you want them to have access too-- in Access Scope Maintenance.

2 Likes

And all V2 REST calls require an API-KEY regardless of the service.

2 Likes

Yes but you don’t have to assign an access scope to them if you want them wide open.

3 Likes

Right. The error message indicated a missing API-KEY. They won’t even get to access scope checking if they don’t supply it first. And then yes, if a scope is defined (good for integrations IMHO) then it is checked.

3 Likes

I was replying to this message, which was before I seen the later post with the API error.

2 Likes

We tried both ways, to filter the customers based on starting keywords of Name, using contains(Name, ‘Test’). It gives the error below :

/api/v2/odata/{Company}/Erp.BO.CustomerSvc/Customers?%24select=Name%2CCustID%2CCustNum&%24filter=contains%28Name%2C%20%2721st%27%29&%24top=10

“Unable to convert expression ‘contains(Name, ‘21st’)’. Error: Operator not yet supported: contains”,

2 Likes

OData is a wrapper around the business object, so there are things that are not always implemented or occasionally have bugs. That’s why some of us use BAQs.

Just Saying Schitts Creek GIF by CBC

6 Likes

Contain’s insn’t supported in oData4 implementaitn of epicor try using indexof

4 Likes

Based on your odata query I’d use a BAQ.

2 Likes

Used the BAQ as well, it gives the same error

/api/v2/odata/Company/BaqSvc/CustomerBAQforAPI/Data?%24filter=contains%28Customer_Name%2C%20%2721%27%29&%24top=10
Unable to convert expression 'contains(Customer_Name, '21')'. Error: Operator not yet supported: contains
2 Likes

With the BAQ, you define a parameter and do the selection there. You then just pass the parameter value in on a URL request as shown above in Tammy’s Post:

4 Likes

FYI, in 2025.2 it looks like it is.

Sorry for the confusion - I forgot odata contains wasn’t supported in Kinetic up until now

6 Likes

Know what works in every version?

:rofl:

2 Likes

functions and BAQ’s lol :sweat_smile:

5 Likes

SqlClient?

/s

4 Likes

True but not great for dynamic server-side select, filter, sort, expand. I’d probably bother with functions more often if we could easily make dynamic queries like:

3 Likes

Date filtering with oData is somewhat tricky if I recall as well vote 1 BAQ.

2 Likes