Has anyone done ay work with regards to pulling receipt confirmations from Fedex, UPS, and other shippper’s sites and updating a UD field in the order or ship tables? This might shave off some processing time in our Drop Shipments… I am about to build something like this, but if someone already went there, then I would love to hear about it…
Epicor Manifest module does this for you. Have you looked at that module?
It is one of the options I am looking at. What I have found so far is that you can add 3 email requests from them: ship confirmation, receipt confirmation, and exceptions notification. You have to set those on the individual PackList Header. I could create a BPM to add those email addresses in the desired CSV format to add those, and then I have to come up with a way to attached received email notifications automatically to each packslip. It doesn’t simply update a field received = true or something.
I am also looking at a scheduled task that makes a call to the FEDEX API with a list of tracking numbers for shipments that went out, but have not gotten a receipt confirmation. The response of the call would flip the UD_Received value from False to True, for the applicable records. I have written API calls before, but only for Infor systems pulling sensor data. Seems like the same principles would apply here., but it will be a journey of discovery and learning…
Postman will be your friend. I haven’t talked to the FedEx API, but I have talked to UPS. My only advice is to make sure you try a variety of calls to UPS. My experience with UPS and pulling rate data was the structure of the returned data varied. Sometimes the data I needed was in a object that didn’t always exist in the JSON and if object didn’t exist I need to look somewhere else.
Postman looks good; just signed up for the freebie account. I’ll update once I get somewhere with this…
And of course the NewtonSoft JSON library is available both server and client side in Epicor.
In an external app or external .dll BPM you would do the following:
Create a class that defines that data UPS is expecting.
Fill the class with data.
Convert the class to JSON using NewtonSoft.
Make the UPS call.
Ready the response data parsing it with NewtonSoft.
It seems easy with an external app or external .dll BPM, but it took me a bit to get my head around doing it in a code widget or function.
Without the class definition I suppose you would use a fixed string for your JSON and replace some values. That’s is easy enough since the data you need to send isn’t complicated, it would be a pain if you needed to send complex data.
And you just saved me a few hours of trying to figure out things… THANKS!
Paul