How can I see what business objects and methods are being called on an action and how do I use them?

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?

You must activate the Tracing Options, later you can inspect the log file generated

4 Likes

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.

3 Likes

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 :wink:
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.

7 Likes

@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

3 Likes

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…

2 Likes

The most important here is that now we have the “Collaboration” and the experience of all. Thanks to the guys for this forum :sunglasses:

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.

5 Likes

good stuff indeed :slight_smile:

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.

1 Like