I have figured out how to do GET’s against specific API’s. Now I am wanting to POST to the Erp.BO.ServiceCallCenter, but do I need everything in the example Schema? Epicor Support just said reads the docs, but I just want to know which fields are required that’s all.
That is the right answer though Adam
You need to do a trace in Epicor to see what business objects to use
Then you use that Trace to head over to the API Documentation and find out which calls to make etc
There isn’t a ready list of what’s required or isn’t, Epicor is built on an Service Oriented Architecture there are 4K+ tables in Epicor and just about as many business objects.
Step 1:
Perform the action in Epicor and capture a Trace (information on how available in the docs)
Step 2:
Use the trace to determine the BOs and the calls to make
Step 3:
Recreate these calls in your favorite tool
Okay, thank you. I will give this Trace a try.
I have it downloaded and open. I click on Enable Trace Logging, but am not getting any of the BO endpoints to populate when navigating pages. I watched the youtube video on it and can’t figure out what I am missing.
I need more context, is your Developer Tools attached in the browser? It must be attached at the bottom or the right for it to work correcltly.
This is for the classic client. If you are using classic screens, this will give you the data you need.
If you are using Kinetic Web screens, these will not show up. You will need to use the developer tools in the browser to see those. You can press F12, and go check the network tab.
If you are using Kinetic screens, inside the classic client, you will need to turn the dev tools on in your sysconfig I believe. There may be another way to get in there.
I just go to the browser for anything with the new screens.
Jumping back on this. I am working from the “Try It Out” section of the API Help site. I keep running in to a 400 error. I switched from v2 to v1 and found out I needed a couple of fields. Added those and now the 400 error is back. From what I watched on APIs from Epicor I would think this would work. What am I missing?
{
"HttpStatus": 400,
"ReasonPhrase": "REST API Exception",
"ErrorMessage": "Object reference not set to an instance of an object.",
"ErrorType": "Ice.Common.BusinessObjectException",
"ErrorDetails": [
{
"Message": "Object reference not set to an instance of an object.",
"Type": "Error",
"Table": "FSCallhd",
"Program": "Epicor.RESTApi.Common.dll",
"Method": "ThrowUpdateExtException",
"ColumnNumber": 17,
"LineNumber": 27
}
],
"CorrelationId": "245ba7b0-80c9-43c9-8ece-0fc929c4611a"
}
After reaching out to Epicor Support. The Service Module we have has a bug when trying to POST against the ServiceCallCenter. It just won’t allow it. That being said, the tech said the current workaround is to use the RPC method. I was able to POST using this method. I asked how long would it take to fix the OData method and was told “Epicor doesn’t really care about the Service module so it will be a bit”. Anyways with this I can connect 2 systems together now.
Hey Adam,
This is the reason many of us that have the Epicor Function capability use that instead of calling the OData (or even RPC) endpoints directly. It gives you more flexibility with your API signatures with less data over the wire as well. Food for thought.