Adapter Questions (Purpose and Usage of GetByID)

How do I know what the purpose of each adapter is? For example - JobPartAdapter - Is there documentation listing all of the BO’s and their purpose?

Next how do I properly use GetByID() - There are a bunch of overloads but I don’t necessarily understand them. Probably the most useful would get GetByID(parameters) - How do I use parameters with the GetByID method?

Ultimately I am trying to find the easiest way to query relevant data from an adapter.

Chris the best way to know what each adapter method does is to use it or see it in action. Use the trace functionality of Epicor to see which methods are called for a given function.

1 Like

Sadly, Jose is right… If indeed Epicor plumbers take notes, the union isn’t publishing them. It’s easy enough to view them in VS and go to definition and see the parameters, but it can be pretty cryptic. Contextual reference is the best I’ve come up with over time due to tracing or blind luck.

Hi Chris,

Just to clarify, are you talking about Adapters (Erp.adapters.JobPart.dll)? or BOs (Erp.contracts.BO.JobPart.dll)?

For “client” BOs, there is technical documentation provided by Epicor for both, e9 and e10, listing all BOs and their method signatures plus a brief description of what they are for.

For Epicor 10 its under documentation:
Go to E10 documentation

And download :

For Epicor 9 its a bit different, its not on documentation, but on downloads:

Then on the right panel download:

Now you get the same doc, but on a pdf:

That’s the theoretical part of your request. if however, you are not satisfied by the some times insufficient short description provided, then you should move forward to the next level of research :smiley:

Go to your Epicor ERP directory and find the BL Tester tool. It should be located under ERP10 > updates folder. Configure it to connect to your e10 TEST or DEV environment, switch company/user if needed, then load the Erp.Contracts.BO.JobPart.dll. You will get the list of methods and you can easily test them.

Enter parameters and click on invoke.

You will get the results once you invoke the method:

A more technical approach is to use tools such as ILSpy, JustDecompile, dotPeek or Reflector to look at the disassembled code of the “client BO/Adapter” (…\ERP10\LocalClients\ENV\Erp.Contracts.BO..dll) or “server” BO assembly (…\server\assemblies\Erp.Services.BO..dll) and try to figure it out what the method really does.



Thanks everyone. I wish I knew why your help gives examples in C# and mine only list VB - that’s always been frustrating. @carlosqt very detailed and helpful information - I appreciate your time!

@rbucek No doubt the revolution isn’t being televised (an attempt at Election Day humor). I’ve pulled some hair out due to the fact that things don’t seems to be well documented, and when it is, it’s not the easiest to find in the E10 portal. This is especially frustrating when your company pays for a special module - and doesn’t even get documentation to use it :frowning:

All the object explorer gives examples in VB. What he is showing you here is something else. That’s the object reference guide a CHM file you can open in windows

Aha, yep, got the file now :smiley:

Once thing to note this documentation is for the BO’s the Adapters are an implementation of said BO’s and for the most part the signatures will be similar. But if you are working on a customization you want to use the Adapters and avoid using the BO’s directly.
The adapters are supported by Epicor on upgrades and less likely to break during an upgrade
So for customizations always try to use the adapter


Good information, thanks. I know that one of the unreasonable fears here is that my work will not move forward with upgrades. I am not saying that issues can’t arise but all of the fear here is based on moves in short order from 7 to 9 to 10 - which was brutal. I am fighting on my end to try to instill some confidence in myself, my work and E10 but it’s definitely an uphill battle. On a large scale conference call the other day, someone say “I hope the work that Chris is doing doesn’t get us fined by Epicor”… how do I combat that kind of ignorance?

Fined? hahaha
As long as you use the Adapters you should be fine for upgrades, and for BPMs use the workflow tools as much as you can and those will upgrade fine too.

I know, right?!? So while you guys are on a roll giving me sup Epic advice - How can make my code completion work proper in Epicor code editor? Sometimes it works – actually, rarely it works.

8 to 9, 9 to 10 was a bit rough, but i really think they are dialing it in now with the standardization of their technology platform. Fined… that’s a good one.

1 Like

Fined??? Smells like some rogue consultant or sales guy throwing some FUD to try to land a statement of work.
The handling of partners and customer code in general is a difficult process to manage and way above my pay grade :wink:

No place I have worked has handled it well. My son works for Sage, my daughter and son in law run SAP at their place (Yes, ERP is in the blood)… They suffer through the same issues. It’s a topic under discussion this week actually on changes but nothing to announce by any means, just a recognition of the pain folks like you are going through.

We have added a ton of new tooling to monitor breaking APIs that we rolled out internallyin 10.1. Someone breaks a method it gets lit up, emailed to heads of state and the dev gets pulled in front of a panel with hot lights to justify why they broke something a customer may rely upon. It’s a nice change to ensure easier migration for customers. The first target is ensuring safe patch releases (The two week rolling updates). More coming on cross version stability.

I feel your pain (More election jokes)


Code completion in Epicor doesn’t work LoL… it never has… (and it never will… ok maybe it will some day but its priority Z from what I’ve heard from a few of the Tools Devs)
Though you get REALLY good at knowing Syntax by heart this way hehe!

You can take your BPMs and write them in Visual Studio , and your customizations you can export the code and create a visual studio project with all 30 thousand references to write the code over there (and then paste it back)

But as far as “fixing” the Code Completion in Epicor… that’s not something that can be done without going into the core code of the framework and ripping out that editor / replacing it with a better one … (I did it, once , it was awful and painful and I could never condone it, it wasn’t worth it and it broke a lot of stuff (all the wizards))

1 Like

I am brand new to ERP myself so I don’t have much to compare but I (despite the general loathing of my company) think Epicor has done a pretty good job with the infrastructure, and especially with the embedded development environment (minus documentation for said development).

1 Like

If you are writing code in BPM, write it in VS or VS Code, version it in Git or TFS and then call it from BPM as an external assembly. You’ll be happier.

1 Like

@Bart_Elia what’s your take on recompiling external assemblies? I’ve been gun shy to date because I don’t want to have to recompile all those. Not sure if it would be required on those two week point releases or if it’s just major versions, like .500 or something. Either way how does one manage all that?

My disconnect so far with using VS for BPMs has been my lack of access to the server. I’ve really wanted to get setup at a minimum for the remote debugging for BPMs in VS but my IT team/Project Managers keep ignoring my requests.

@josecgomez.trigemco Might you have a project template that would save me the hassle of setting up all of the necessary references in VS?

For BPms the template is available in the conversion side, for customization I don’t use one (its too much of a hassle) I think @rbucek may have one?

BPM Wrapper Project

1 Like