Epicor Backend 101

Can anyone provide me with or point me to a good explanation of Epicor’s backend.

I am trying to build my understanding of the system so that I can do more. So I know there are all of the dll’s, but I don’t know the function of each one (e.g. Adapters, Contracts, Ice, etc).

I know this is a big ask, but I am looking for you experts out there to point me in the right direction to start.

Have you gotten your credentials to Epic Web yet? If so there are tons of summary documents and high level information about the modules in there. Unfortunately with 8k plus tables (temp tables, real tables in Erp/Ice/dbo, datasets you will work with) and millions of lines of code, there will be no one in here that can respond to your question and do it any justice. You literally just have to dive in.

A couple of great tools to help along the way

  • Ice/Customization guides
  • Technical Ref guides
  • Architectural Guide
  • Epicor’s built in Help System
  • Field help
3 Likes

There are quite a few documents on EpicWeb.
I recommend you get acquainted with those, including the Architecture Guide, The Customization Guide, The Ice Tools Guide and a few (most)of the tech reference manuals.

Here’s a direct link to the Archtecture Guide to get you started
https://epicweb.epicor.com/doc/Docs/Epicor10_ArchitectureGuide_101500.pdf#search=Architecture

4 Likes

My bad, I don’t want to go that far into the backend :dizzy_face:

I guess the best way to explain it is when looking at the client and server folders, the dlls are very neatly organized. You can even group some of them together, but if I look at the code in the dlls, it does not tell me what it does.

What does a “contract” dll do? What does an “adapter” dll do? I’m not looking for a novel, just trying to understand the components and logic to how Epicor was constructed so when I look at stuff I can go “oh, I know what they are trying to do” and then dive into the details to figure out how they did it.

Does any of this make sense?

The Epicor SDK documentation provides answers to your specific questions. You can find them in Epicorweb, under downloads of Epicor 10.1.x > SDK.

Link:
https://epicweb.epicor.com/products/epicor-erp-10/downloads
and then here:

  1. SDK_ObjectGuide_101600.pdf
  2. SDK_UserInterface_101600.pdf

Carlos Q.
PSE

2 Likes

John, I am happy to have that discussion!

I’ve put in a lot of hours with the University and Docs folks to hopefully push that across. The Architecture guide is a good start. I don’t know if we will have exactly what you are looking for but I am happy to fill in blanks and take feedback back to the team. I just finished reviewing architectural doc needs for 10.2 today (e.g. - How to Integrate with Erp10 will be included for those who care )

Let’s do this in the open here so others can learn as well (Searching is a wonderful tool - it saves me repeating things A LOT).

AMA anyone?

7 Likes

I just went there and I could not see any documentation. Is there documentation there that others can see?

I don’t see any SDK documents either. I suspect that they are only
available/visible if you have purchased the SDK from Epicor.

1 Like

Thanks Bart. I have been searching and have not been able to find anything yet.

Unless I am missing something, the Architecture Guide does not have what I am looking for. I am going to look through the Epicor ICE 3.0 Tools User Guide. Sign In

I thought one time I saw a document about how to use Visual Studio to test code. Is there one? I have been looking for it and have not found it yet, if someone knows where it is I would appreciate the link.

Good point. We have not purchased the SDK.

This is the gap we are discussing internally. The SDK is targeted for folks building new silos or products upon the ICE framework just as ERP does. For customizing, the tools in the box are provided. But what’s in between? That integration scenario from external systems into ERP are covered by Service Connect but that’s not always an exact fit. SC is more of a BtoB integration system along the lines of BizTalk with excellent flexibility and good governance tracking abilities but not really suited for pointing a web page at the BOs.

The REST effort has been about breaking down that data barrier and making the ERP data more approachable for these integration scenarios. OS, language and device independent - REST is our go forward approach to fill that gap. The nice thing about it mirroring the existing APIs versus building new abstractions is that the existing customization tooling can be leveraged to learn the BOs and fields (Help / tech help, tracing, etc).

We are considering some higher level integration points over the REST protocols that would be easier to consume. The struggle is the simpler and more stable the API, the more that will get missed for advanced scenarios so nothing to announce for timeframe (Safe harbor statement - not sure if will ever happen, forward looking statement, yada yada. You know the caveats if you have been up here before).

I posted the draft integration doc up here a few weeks ago. This is morphing into new docs for the 10.2.x timeframe.

For some of your questions, you are looking at an architecture overview of the client. I thought some of this is covered by training courses through Epicor University - including the VS tricks you mentioned. I’ll reach out to my contact over there and get a list of appropriate courses.

Does that help? More muddying of the water?

7 Likes

Good Point, I have not yet needed the SDK despite having some crazy Customizations here and there… So the SDK as Bart stated, might not be for everyone.

1 Like

Yes, that was clear, no mud involved.

I found the document that I was looking for. It’s the Converted Code Programming Guide. I am reading it right now and am finding it very informative so far. The ICE Tools guide is good too, but not what I was looking for.

So, basically what I was able to pull out so far is that you use the dll contract files to call the method you need. The contract dll then gets the actual method from the adapter dll file. Correct?

The Converted Code Programming Guide also contains instructions on how to debug your custom code in VS.

The Adapters front the Contract. Adapters do the cross form notification. The Contract contains the client proxies to the server (Impls). These do the networking goo just like the E9 client BOs.

1 Like

What are trying to accomplish? An integration from something or a customization in side the client?

1 Like

Hi Bart,

I have a tangent question.
Has there ever been talk of allowing the creation of Report Data Definitions? My understanding is that this is a feature of the SDK but not in base Epicor.
I’ve gone from E9 to E10 and now back to E9 at my current job so I haven’t took notice if it has been added in the latest version of E10.

JOE ROJAS
Epicor Applications Manager
VENTION MEDICAL + DESIGN & DEVELOPMENT
DIRECT: 508.597.1392 x1625 | MOBILE: 774.826.9245

1 Like

@joerojas there is a new feature not sure yet if its on 600 (I think it is) which will allow you to create multi-baq reports which basically allows you to create reports with any data you want and as complex as you want to make them. Basically you can relate BAQ’s to one another and use that “DataSet” as the basis for your report effectively building your own “RDD”… If this is not in 600… then disregard the above… waves hand this is not the droid you are looking for

4 Likes

Customization. I have taken some online C# classes and have written some terrible code that works in Epicor. I was looking at the customer part reference and noticed that it only references a part in the master and not a part + revision. So I was trying to see what it would take for me to build that functionality myself. I know I would have to use a UD table to store something, it was more the writing of the BPM that was tripping me up. Not really understanding how the dlls work is what ends up getting me. I’m the type of person who needs to understand the base and then I can grow from there.

It’s in 10.1.600! Beginning in that release, one can create their own RDDs without the SDK.

5 Likes

Oddly enough, it’s required for the new Compliance Engine. cough, cough…Did I say that?

Pretty sure it’s listed in the 10.1.600 Feature Listing…if not, make it so.

3 Likes