So we are using a third party shipping software and integrating it with Epicor. Going good so far, but had a question I’m not 100% on. In the past this company has noticed that while the software does write back to Epicor, the inserted data is not reflected in the UI. So, my question is, will a simple insert and update be enough to process everything, or is there other processes that need to run in order for this is to work.
Depends, if they are writing directly to the DB, then no. If they are using the BO’s it is possible using the the dsholder.Attach(DataSet) within the BO to cause a UI refresh
@Chris_Conn This will be directly with the DB. Their connection is OBDC, so directly to the DB. So as long as they are writing the info to the tables and updating correctly, everything will update across everything, even the UI correctly, correct?
It highly depends on what fields they are updating. Some fields are dumb - others require checks and changes to other fields. Assuming, we are talking about a dumb field, updating the DB should be OK - although it is typically frowned upon.
If you are not using a BO, then the only way you can update your UI is to do it from the UI. Maybe code on the UI, just before firing off your external proc, checks the state of the values you expect to change, then you set a thread to check that field periodically for a time and reload/refresh the UI when it sees the change.
Depending on the level of the programmers on the side of the external stuff (and their languages,etc) - they could probably call a refresh on the form by using windows DLLs to hook the E10 window and call a refresh on it - it’s a lot of work though.
So using the BO is better than direct to the DB in this case? They will be writing to the all fields that would be needed for shipping and everything associated. Like inventory and invoicing.
Oh hell yeah. Inventory and Invoicing for sure. There is a ton of logic involved in those. Admittedly most of it is validation, but that’s also important.
They have 2 options externally interfacing the BOs.
- WCF Services
Is it in the BO wher ethe credit card is processed and then the retunr if its declined?
I havent dealt with Credit Card processing yet but I’d venture to say yes.
There is a BO (Business Object) for nearly every process in Epicor.
@josecgomez probably knows
@Chris_Conn Between E9 to E10, have the WCf services gotten better? My shipping company stated they halted integration with E9 due to the web services not updating as expected and Epicor couldn’t figure out how to make it work.
@josecgomez the credit card processing from shipping, is that through a BO?
I have yet to find a WCF service that didnt work in E10. With that said, there is a learning curve to the WCF and even the BO’s. My suggestion to them would be to run a trace in E10 doing what they are trying to do manually. This will expose all the BO’s and methods needed.
For that matter - the REST can get you going faster probably
In ALL cases.
Seriously, you just don’t know FOR SURE what BPMs that won’t be running when you don’t use the framework. This is the riskiest thing you can do in Epicor. Sure, some will argue that UD fields don’t count but you better be right about that. It’s just safer not to.
Separately, it would be nice if there was a framework way to manage these fields: like a bo.xxx.UpdateUD method or something like that.
I would make the processor specify the fields they want to “write back” and build a proper way to update Epicor.
Just my .02 with 1.5% service charge…
@Mark_Wonsil Good ideas! Do you know if the credit card processing from shipping, if that is done through a BO? I’m pretty sure it is from what I am reading, but want to make sure.
@Chris_Conn I agree. I ran a complete trace and from the shipping for everything we need them to do and have all the BO mentioned. So shouldn’t be too big a project.
Everything in Epicor is through a BO. If you are writing back using ODBC that’s generally very very bad
Ok, At least I know where to go from here. Thank you for the warning and info.
William - Is it an LTL company? Just curious…
The company is ProShip. they handle all manner of shipping, including LTL.
After talking with the software company, we will be needing to use REST. But they are wanting info such as “We will need to know the services and the payload format and the response format for the services that will allow us to read and update.”
Can you point me in the right direction on where to find this info?
Once you have installed the rest services, you can access the help page.
This should have all the info you require
The URL is something link https://epicordomain/epicorerptest/api/help/
You can take this further and use something like postman to test the REST calls.
At what version is REST available?
Version >= 10.1.500.X