Erp.Contract.BO.Quote.dll Issue in Custom Code

Probably not related as it seems to address another issue but just in case I will throw it out there.

There is a hotfix (ERPS-87324) for Erp.Services.BO.Quote.dll and other files for version 10.2.100. It states that the issue will be fixed in 10.2.300 so I assume there is a fix for 10.2.200 as well. Apparently it broke going from 10.1.600 to 10.2.100.

Reported problem:
Brief Description of Call: Object reference error occurs when creating an order from quote if credit card configuration record does not exist.

Brett

1 Like

No worries - we’ve all been there.

So, we know that the hed object is being created successfully and the previous line sets a value for a system field without throwing an error. We also know that the “CheckBox01” field exists in the database.

Since it’s all running externally can you debug in VS and inspect the hed variable right after it’s created? Then at least you’d be able to see the enumeration of the columns and confirm exactly what is or is not there. Or, if that’s not an option, you could always toss all the column names into a CSV string and throw it in an error.

1 Like

Interesting. Wonder if I should roll to 10.2.100 and see if results are the same.

1 Like

Quick observation. In 10.2.200 the field help for the checkbox shows up as:

image

But in 10.1.400.38, where everything is working fine, shows up as:

image

It’s probably nothing, or has to do with what was mentioned earlier about the fields being taken out by default in later revisions, but it is interesting as to why it does that on the newer version.

I actually found a stackoverflow post from the original programmer trying to access the UD tables using the BO. This might shed some light on his process:

Found it pretty funny I came across this online as the code recommended is in this project in quite a few places.

@jstephens

Created a few breakpoints to see what was showing up for the hed variable and I am not seeing the UD columns. Although even when I do the same to the code working in the 10.1.400 server they aren’t showing up as well yet that code works fine. The CheckBox01 does show up in the non-public members:

When using the same breakpoints in the 10.2.200 environment I get the error in the logger that CheckBox01 does not exist in OrderHed. Kind of at a loss here right now. I was able to get in touch with someone at Epicor and they are not sure why the BO is not acting properly as they should it should still have retained the same functionality and they are going to talk to development and see if something could have possibly changed.

It may have to be rewritten at this point as even the Epicor CSG team says they can’t really help me at this point. It is definitely due to the removal of the UD tables.

I am going to have to look through this and figure out how to implement the code cleanly. Appreciate the help.

My expectation is that you already have BO’s instanciated in your project. I suppose it’s just the task of hunting down all of those manual row creations and migrating them to use the BO functions against the dataset. Once your existing row var is pointing to the row in the ds that was manipulated by the BO, the rest of the code probably wont change much. I am sure it’s still a ton of work.

Good luck!

2 Likes

Yeah I am thinking there shouldn’t be that many structure changes just the hunting down of everything is going to be blast. Especially how the code is structured…

Time to put on the headphones and go hide away from people for the rest of the day.

I think the fact that your solution is written as a wrapper might be helpful for you in this case.

Agreed.

I am grateful that it was originally written this way. Should be easy to manage going forward if (more likely when) any changes in Epicor cause issues in later revisions.

Update:
I got a call back from Epicor and mentioned using TableSet instead of the dataset although since we are doing it in c# and the code is happening client side it won’t work properly with it. At least according to Epicor.

We had tried to do it server side the first go around with service connect, I believe, and it took a very long time as it entered everything line by line slowly. I had forgotten we went down that path first as it was over 2 years ago.