There is no BPM customization attached to (BAQ) Update method

I have a simple updatable BAQ where the update method copies some fields from the BAQ to UD fields in the InvcHead table. I am getting the following error when I analyze and clink the Update button in the Query Designer, even though there is a customization attached to the BAQ Update method:

Application Error

Exception caught in: Epicor.ServiceModel

Error Detail

Message: There is no BPM customization attached to Update method of ‘PNY01-InvcHead CB Maint’ updatable query in ‘PNY01’ company or BPM system is not enabled.
Please check presence of BPM customization and/or ask administrator for assistance.
Program: Epicor.ServiceModel.dll
Method: ShouldRethrowNonRetryableException

Client Stack Trace

at Ice.Services.BO.DynamicQuery.Internal.Ubaq.UbaqCoreDefaultImpl.ThrowNotImplemented(DynamicQueryTableset queryDS, String methodName) in C:_Releases\ICE\3.1.600.16\Source\Server\Services\BO\DynamicQuery\Internal\Ubaq\UbaqCoreDefaultImpl.cs:line 19
at Epicor.Customization.Bpm.MethodCustomizationBase23.RunDirectives(TParam parameters) in c:\_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\MethodCustomizationBase2.cs:line 215 at Epicor.Customization.Bpm.CustomizationBase23.Execute(TParam parameters) in c:_Releases\ICE\3.1.600.0\Source\Server\Internal\Lib\Epicor.Customization.Bpm\CustomizationBase2.cs:line 71
at Epicor.Customization.Bpm.UbaqB0489D4A0A9E429FB1C059DD41FC77E7.PNY01_PNY01_InvcHead_CB_MaintSvcCustomization.Update(DynamicQueryTableset queryDS, DataSet& queryResultDataset)
at Ice.Services.BO.DynamicQuery.Internal.Ubaq.UbaqBpmCaller.Update(DynamicQueryTableset queryDesign, DataSet& queryResultDataset) in C:_Releases\ICE\3.1.600.16\Source\Server\Services\BO\DynamicQuery\Internal\Ubaq\UbaqBpmCaller.cs:line 101
at Ice.Services.BO.DynamicQuerySvc.Update(DynamicQueryTableset queryDS, DataSet queryResultDataset) in C:_Releases\ICE\3.1.600.16\Source\Server\Services\BO\DynamicQuery\DynamicQuery.cs:line 568
at Ice.Services.BO.DynamicQuerySvcFacade.Update(DynamicQueryTableset queryDS, DataSet queryResultDataset) in C:_Releases\ICE\3.1.600.16\Source\Server\Services\BO\DynamicQuery\DynamicQuerySvcFacade.cs:line 342
at SyncInvokeUpdate(Object , Object , Object )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object inputs, Object& outputs)
at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func2 func) in C:\_Releases\ICE\3.1.600.16\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in C:_Releases\ICE\3.1.600.16\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 47
at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object inputs, Object& outputs) in C:_Releases\ICE\3.1.600.16\Source\Framework\Epicor.System\Hosting\Wcf\EpiOperationInvoker.cs:line 23
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

at Epicor.ServiceModel.Channels.ImplBase1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets) at Ice.Proxy.BO.DynamicQueryImpl.Update(DynamicQueryDataSet queryDS, DataSet queryResultDataset) at Ice.Adapters.DynamicQueryAdapter.<>c__DisplayClass27_0.<Update>b__0(DataSet datasetToSend) at Ice.Adapters.DynamicQueryAdapter.ProcessUbaqMethod(String methodName, DataSet updatedDS, Func2 methodExecutor, Boolean refreshQueryResultsDataset)
at Ice.Adapters.DynamicQueryAdapter.Update(DynamicQueryDataSet queryDS, DataSet updatedDS, Boolean refreshQueryResultsDataset)
at Ice.UI.App.BAQDesignerEntry.BAQTransaction.b__376_0(Int32& rowReturned)
at Ice.UI.App.BAQDesignerEntry.Forms.BAQDiagramForm.ShowQueryResults(DataSet dsResults, getQueryResult getResults, ReportAdditionalInfo additionalInfo)
at Ice.UI.App.BAQDesignerEntry.BAQTransaction.CallUpdate()

The customization is simple, with just this Custom Code block:

var ttResults_Rows = (from t1 in ttResults
where t1.RowMod == IceRow.ROWSTATE_UPDATED
select t1);
foreach (var ttResults_Row in ttResults_Rows)
{
var InvcHead_Row = (from t1 in Db.InvcHead
where Session.CompanyID == t1.Company
&& ttResults_Row.InvcHead_InvoiceNum == t1.InvoiceNum
select t1).FirstOrDefault();

if (InvcHead_Row != null)
{
InvcHead_Row[“CheckBox05”] = Convert.ToBoolean(ttResults_Row[“InvcHead_CheckBox05”]);
InvcHead_Row[“ShortChar05”] = ttResults_Row[“InvcHead_ShortChar05”].ToString();
InvcHead_Row[“Character05”] = ttResults_Row[“InvcHead_Character05”].ToString();
InvcHead_Row[“RowMod”] = IceRow.ROWSTATE_UPDATED;
Db.Validate(InvcHead_Row);
//ttResults_Row[“RowMod”] = “”;
} // end if InvcHead_Row != null
} // end for each ttResults_Row

Can someone show me where I’m making the mistake? Everything looks correct to me. Thanks.

bb

Bryan, I know it’s been a while since you posted this problem but I’m having the same issue and I wondered if you ever resolved it and if you remember what the resolution was.
I’d appreciate the help.
Thanks,
Vicki Jeter

Vicki,

Sadly I don’t remember specifically what we did in order to get it to work, but hopefully this will help. You have to click the BPM Directives button and then create directives for the .Update method as seen in this screenshot. We have a pre-Processing and Base-Processing directive. The Base directive is merely defined and is empty, I don’t remember if that has to be there or not for it to work but it doesn’t hurt to have it there. The functionality we needed was in the pre-processing.

Hope this helps, good luck.

bb

1 Like

If you arent implementing any Epicor generated procedures, you can select Advanced BPM update only - this will allow you to use only your custom methods.

Hi Vicki,

did you achieve this then?

How?

I need to update two tables POHeader and POApvMsg - what I have to do?

You can search for similar questions on this forum. Here’s one relevant thread.