I’m getting the exact same error described in this thread:
Only issue is I am not calling MasterUpdate or Update. I can’t see any way I am creating an infinite loop. I just set a context variable or raise and exception, depending on what button they press. What else could be causing this issue? I tried disabling all other BPM’s for the SalesOrder BO but the error persists.
Business Layer Exception
BpmData form feedback has been received from client but not processed by server code
Exception caught in: Epicor.ServiceModel
Error Detail
============
Correlation ID: 1ce7f428-1cd9-4c31-ae1f-cad95925fd55
Description: BpmData form feedback has been received from client but not processed by server code
Program: Epicor.Customization.BPM.dll
Method: FinalizeBpmContextUsage
Line Number: 271
Column Number: 21
Client Stack Trace
==================
at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)
at Erp.Proxy.BO.SalesOrderImpl.MasterUpdate(Boolean lCheckForOrderChangedMsg, Boolean lcheckForResponse, String cTableName, Int32 iCustNum, Int32 iOrderNum, Boolean lweLicensed, Boolean& lContinue, String& cResponseMsg, String& cCreditShipAction, String& cDisplayMsg, String& cCompliantMsg, String& cResponseMsgOrdRel, String& cAgingMessage, SalesOrderDataSet ds)
at Erp.Adapters.SalesOrderAdapter.MasterUpdate(Boolean lCheckForOrderChangedMsg, Boolean lcheckForResponse, String cTableName, Int32 iCustNum, Int32 iOrderNum, Boolean lweLicensed, Boolean& lContinue, String& cResponseMsg, String& cCreditShipAction, String& cDisplayMsg, String& cCompliantMsg, String& cResponseMsgOrdRel, String& cAgingMessage)
at Erp.UI.App.SalesOrderEntry.Transaction.Update()
I did a trace. MasterUpdate is showing up twice. If I turn off the BPM, it only shows up once. But I am not calling MasterUpdate or Update anywhere in this BPM. I added I message box right after the BPM form, it does not display, the error message happens before that.
Anyone have thoughts on this? I would think using a BPM form for a Cancel/Confirm function would be pretty common but I can’t seem to get around this bizarre error.
Hello Evan. I don’t have a fix, but we had code doing exactly what you are doing, that worked fine at 10.2.400.9. We recently upgraded to 10.2.400.16, and it stopped working, producing the same error that you are getting. We are convinced the problem is connected to a change in Epicor between these two releases. If we clear the cache at the start of the session, it works fine, as far as we can tell. We have raised a ticket with Epicor. They have re-produced the problem, and that is where we are at the moment. Once I get some feedback, I’ll update you. Have you raised it with Epicor? We are in the UK.
No, I didn’t make a case. I figured I was just being clueless as usual. The process of putting in cases are always super tedious. Even its something simple they always want to call and do a webex =/
I know exactly how you feel, as we are going through that exact process at the moment. It’s something that needs fixing in Epicor, and is not a coding error. It’s been a week since we raised the ticket already. Are you between the versions I mentioned? Will update you once we have something.
Has there been any progress on this issue? I am getting this same error when calling a simple BPM data form. I stripped my BPM down to just calling the form and it still periodically errors. This seems like a serious bug to me. Testing the data form in the designer or clearing the cache seems to temporarily fix it. I have had a case open with Epicor since 12/4/19 and it still is unresolved.
I don’t know sequence of the method calls, but it looks like MasterUpdate calls Update.
BPM Forms must be used only in directives attached to the outermost method in the call chain (AFAIR our documentation mentions that).
There is no way to suspend and then resume service method call. So when BPM form raised from the inner method it terminates execution of the outer one. Then client code recalls the method raising the form (for the client it is outer method). As a result you get two method calls instead one.
Also, most likely, you have directives on both methods (MasterUpdate and Update). As a result, a directive on the outer method detects that call accomplished by BPM form call information, but can’t find related BPM form action in itself and fails. It is oversimplified explanation, but it is quite near to the real behavior.
I’m not sure if you are addressing me or the other posters, but I was careful to state I disabled ALL other BPMs, and you can see from my diagram I am not calling Update or Master Update from my BPM.
About the call chain, are you saying I should move the BPM from Update to MasterUpdate?
I’m? Mostly from code :).
But in your case, client trace is a good starting point.
If it contains MasterUpdate and does not contain Update, but your directive executes, it means MasterUpdate calls Update. And vice versa.
Well our code has run just fine for two years (up to 10.2.400.9), and then didn’t when we jumped to 10.2.400.16. Still broken at 10.2.400.18. We have a ticket open with Epicor, and are hoping it’s been addressed in 10.2.400.19 (due tomorrow), and equivalents for other people. They are saying they have addressed a bug that ‘may’ fix this. Will be testing it as soon as we can get our hands on it. It seems you can put a simple BPM data form anywhere at the moment and it will fail.
So do we, but it’s all Epicor have given us so far. Going to have to try the same one at 400 before they’ll do anything else, if that doesn’t fix it. Hoping it does. Been waiting a couple of weeks already. Looks like some people have been waiting longer. It’s impacting our business.