Hello,
How do I see what business objects and methods are being called and then how do I use them in a BPM? What do I pass to them and how do I find that out?
Hello,
How do I see what business objects and methods are being called and then how do I use them in a BPM? What do I pass to them and how do I find that out?
Are you able to look at the code when this trace is turn on.
The reason Iâm trying to find out how Epicor queries the data on multi-level pegging.
You cannot see this easily. There are ways but it requires decompiling Epicor assemblies. The tracing tells you which methods to call, but âWHATâ do they do in the method is a âblack boxâ
Thank you so much every one. @josecgomez , how does one see the black box? I just wish there was some documentation on all of the methods like there is for any programming language i.e. C#, VB, etc. Why hasnât epicor come out with that? Also, how does one like yourself come to know what you know about the methods/black box? Are you fooling around in a test environment or what did you do to get the knowledge you have about customization. Is there a base document you are referencing? Do you have any documentation.
Thanks everyone for your input.
There isnât a magical document or a one shot deal unfortunately. Epicor is has done an amazing job at documenting a lot of their features but the software is MILLIONS of lines of code and it is nearly impossible to explain it all in detail.
On most cases you as the end user / developer do not need to know what Epicor does in their âBlack Boxâ you just need to know that to create a sales order you call GetNewOrder, GetNewDtl, ChangePart, ChangePrice, and Update which you can get from the Trace Feature in Epicor and many of their guides.
The only time when you should be concerned with how does in the backend Epicor do X , Y or Z is if you are finding issues with the functionality or you are trying to replace some functionality (BASE METHOD DIRECTIVE or SDK work)
If your company purchases the SDK you are given access to (MOST) of the Client and some of the serverâs back end source code which gives you some insight into said black box.
There are also tools you can use to decompile the epicor code and look at it yourself but that requires a lot of knowhow in the back dirty world of .NET and reflection.
The question of how does someone know what we know⌠it really comes to experience. Iâve been doing this for 10+ years every single day. Iâve played in test environments, read every manual that exists, attended every insights and conference available, taken the epicor certification courses and bothered the living crap out of @Bart_Elia and others at Epicor for information. (Alcohol goes a long way for those special tidbits⌠but you didnât hear that from me), and ofcourse resources like this website are great tools!
So read as much as you can, absorb as much of it and try things out is the best advice I can give you. A good solid foundation of basic programming concepts of course is required to understand a lot of it.
Ok, going to have to delicately tap dance on this one and there will be segments of official response and some advice from someone who has survived this crazy industry for mumble mumble decadesâŚ
Puts on Official Hat
In general you should be using the services we expose and consume from the client.
Those APIs can be discovered via the mechanism Jose mentions. Turn on the logging, perform your activity and review the trace to discover the relevant services, methods, parameters. You can discover information about those from âdata dictionaryâ in the UI or honestly my favorite mechanism lately has been the REST help pages in swagger. They are the most complete in the system at this point in time imho.
The âcore methodsâ in the system of GetByID/Rows/List/Update/UpdateExt solve basic scenarios. Most of the important services will have custom methods that should be well described in the method XML Comments that are generated and visible in the REST help - which is identical code as all the BOs.
Takes off Official hat
Puts on Hacker hat
In this day and age of java, dotnet, etc, code is easy to review. ILDasm, Telerik Just Decompile and a host of others can decompile so you can see biz logic fairly easily. You canât recompile things due to licensing agreements and strong naming but in general you can discover anything you want or need to for doing your job. We have done this with the dotNet framework since v1.0 before they made most of it open source. Itâs a great way to learn whatâs in that âGrey Boxâ.
I would not expect to be able to submit a pull request to Epicor on Github in the near future but Iâd be lying if I did not admit people have shipped me a code fix on a bug they found while looking at decompiled code - just as I have to Microsoft. The Entity Framework team and us are on great terms
Itâs not an officially supported scenario and itâs difficult enough to support hundreds of internal devs on the 80 million lines of CORE code in ERP 10 (excluding EWA, Social, search, service connect, etc etc). We recognize there needs to be something between basic support on the app from the helpdesk and paying for a CSG engagement. This is a struggle I have had repeated across too many projects in many companies. Itâs a heck of a biz problem to figure out how to give decent support without charging an unpalatable $$. Luckily the industry has seen the explosion of open source and community driven developer discussions with sites like this one or Stack Overflow. The model has thus been established that gives the C-level types in the world a pattern to follow. It will be interesting to see how both Epicor and the industry evolves in the coming years.
One a personal note, this is the same advice I have given to my kids are they have grown into the dev community. Both are in IT. They did the same thing - community site, decompile to learn, hack, ask / answer questions, participate, be professional and a decent human, learn. Whatâs the ideas about the first 20 hours to learn and 10k hours to master? No matter your opinions, there is a learning curve you are starting upon and thatâs always exciting.
@Bart_Elia and @josecgomez , thank you so much for your words of wisdom, I totally agree that this learning curve is exciting. Do you know what the ERP Rest Help URL is?
If you have rest enabled the HELP URL should be
https://[SERVER]/[INSTANCE]/api/help
Refer to
for a LOT more info
If you have 10.1.500 or higher info on REST is in the help.
Whatâs in my queue is an intro on what you are facing. I need to integrate against Epicor - now what. I gave a snippet up here a while back on the three basic approaches for INTEGRATION. For customization thatâs been in the docs and box for some time. I personally am faced with integrations coming out of everywhere of late and we never really discussed trade offs so thatâs my current focus in ICE3.2/ERP10.2.
Everyone keep chatting while I lurk and get ideas on our needs to deliver you folks contentâŚ
The most important here is that now we have the âCollaborationâ and the experience of all. Thanks to the guys for this forum
So many hours of work. like many other members of this forum I have 10+ years working with many Epicor solutions, starting many years ago with Platinum For Windows, Epicor Enterprise, and now Vantage, Vista, Epicor 9, Epicor 10 and his extension solutions. I have reading hundreds of Epicor documentations and Certifications exams.
And I will continue learning.
What a touching thread. (Wipes away nerd tear) This is why we have a great
community- thanks users, contributors, official devs and especially
moderators.
good stuff indeed
Now that takes me backâŚSoftbridge Basic and about a million attempts to get something to workâŚEpicor has come such a long way since those days.