E9 to E10 Customization Questions

We have a fair share of customization in E9, and when looking at them in E10, obviously most of them do not work, and are tossing out errors because of different assembly references. For example, our custom scripts have ‘using’ statements as needed for the code, IE:

using Epicor.Mfg.UI;
using Epicor.Mfg.UI.FrameWork;
using Epicor.Mfg.UI.ExtendedProps;
using Epicor.Mfg.UI.FormFunctions;
using Epicor.Mfg.UI.Customization;
using Epicor.Mfg.UI.Adapters;
using Epicor.Mfg.UI.Searches;
using Epicor.Mfg.BO;
using Epicor.Mfg.BO.SalesRep;

Further down in the code, we use different adapters and connections to retrieve/manipulate the data, as shown here:

SalesRep objSalesRep = new SalesRep(CustShipForm.Session.ConnectionPool); //Epicor.Mfg.BO.SalesRep
SalesRepDataSet dsSalesRep = new SalesRepDataSet(); //Epicor.Mfg.Bo.SalesRepDataSet
salesRep = dsOrder.Tables("OrderHed").Rows(0).Item("SalesRepList");
dsSalesRep = objSalesRep.GetById(salesRep);
CustCnt objCustCnt = new CustCnt(CustShipForm.Session.ConnectionPool); //Epicor.Mfg.BO.CustCnt
CustCntDataSet dsCustCnt = new CustCntDataSet(); //Epicor.Mfg.BO.CustCntDataSet

The adapters, connectionpools, etc, do not all function in E10 due to different method calls, types, objects, referenced assemblies, etc.

Now, I am fairly new to programming for Epicor, however I consider myself to be well versed in programming in general. C# is nothing new to me. Where I am falling short is knowing what modules in E10 are the ‘replacements’ for what we used in E9. IE:

Line 899: Epicor.Mfg.BO.ShipTo objShipTo = new Epicor.Mfg.BO.ShipTo(CustShipForm.Session.ConnectionPool);
Line 900: Epicor.Mfg.BO.ShipToDataSet dsShipTo = new Epicor.Mfg.BO.ShipToDataSet();

Error: BC30002 - line 899 (1316) - Type 'Epicor.Mfg.BO.ShipTo' is not defined.
Error: BC30002 - line 900 (1317) - Type 'Epicor.Mfg.BO.ShipToDataSet' is not defined.

Where would I look (documentation) to determine where those are defined at? I have tried poking around and looking at the exported functions in the DLLs themselves, however with over 4,000 DLL’s, it would take a LONG while. Is there any sort of API for all of the different methods and/or properties for the E10 libraries?

Any push in the right direction would be greatly appreciated, as I am finding myself falling even further into the rabbit hole every time I try to figure this out.

Thanks in advance for any assistance y’all can provide :slight_smile:

Most of the standard functionality within Epicor went from Epicor.Mfg to Erp.BO

However it looks like in most of your customizations you are using the Business Objects and NOT the Adapters which is why the upgrade dind’t fix a lot of these issues for you.
The business objects in E10 are more tricky to implement, I recommend you look at replacing those lines of code with Adapter calls instead. Adapters are better supported and will upgrade a lot more cleanly in the future.

For example your SalesRep BO call as an adapter would look like this
Bring in the reference to Erp.SalesRep.Adapter.dll

SalesRepAdapter objSalesRep = new SalesRepAdapter(oTrans);
objSalesRep.BOConnect();

Then you should be able to use this object pretty similarly to how you used the BO

I assume that you mean Erp.Adapters.SalesRep.dll, rather than Erp.SalesRep.Adapter.dll ?

Right