So you can not bring serials in BEFORE they are received… yet.
You can (somehow) not receive without first having the serials?
I am struggling to understand the “order of operations” here - and lack of documentation Epicor has regarding the API (which fields are required, etc).
We are trying to (via REST API) receive X number of items (all which have a unique serial number) against an open PO/Line.
I have figured everything out up to the point that the API now complains that the number of serial numbers does not match the OurQty value basically.
We are trying to call [POST]/Erp.BO.ReceiptSvc/Receipts.
We first tried doing a simple receive - no serial numbers needed. Something like power cords. For each RcvDtls entry, we set the EnableSN to “FALSE” and it fails completely, setting this to TRUE would make more sense for us since most parts have serials (we are trying to batch-receive hundreds of serials at a time here). But the next question is: how to you pass the serial numbers to ReceiptSvc/Receipts?
The API does not specify any additional keys that can be passed in the payload to populate the serial numbers.
I see there is an API endpoint for [POST]Erp.BO.SerialNoSvc/SerialNoes - but it seem that endpoint is for assigning serial numbers AFTER the parts are received (since it requires a PackSlip and PackSlipLine - which must happen when parts are received). Chicken before the egg.
I also found the endpoint of Erp.BO.ReceiptSvc/SelectedSerialNumbers… I notice it has fields of ‘NotSavedToDB’ = ‘TRUE’… is this what must FIRST be called before calling ReceiptScv/Receipts? Does the back-end then auto-pull from the serial numbers that are pumped in from this other api endpoint?
Honestly, the ONLY sure-fire to know this is through a trace. I’ve spent way too many hours trying to divine what Epicor was thinking and discovered the truth was always available - just in a form I was unwilling to look at.
F12 is your friend. There is also a Chrome extension that might help.
Kinetic is the windows native client (which I typically use the classic style)…
Nonetheless… I assume kinetic is actually a chrome instance that is packaged to run as a native app then? And from there… I debug and see all the actual HTTP API calls that are being made in order to duplicate?
Not dumb, I assumed you were at a newer version. For the classic client:
Kinetic is web based. In the Kinetic versions (K2021…), the client uses the embedded EO browser to display the pages, but those pages will also work in Chrome, Edge, etc.
Worth noting: the traces might change between the client and the browser, so you might have to tweak your program when you upgrade.