The Paste New > Update process works alright. It is a little slow and I can’t tell the process is proceeding. I also have a custom action in the UBAQ to Delete All rows in the UD03 table using this small bit of custom code:
using (var txScope = IceContext.CreateDefaultTransactionScope())
{
foreach(var UD03 in (from row in Db.UD03 select row))
{
Db.UD03.Delete(UD03);
}
Db.Validate();
txScope.Complete();
}
When I run that custom action from the App studio dashboard I created, I get this popup after a while, then over and over as long as I stay on the page:
Business Layer Exception
BpmData form feedback has been received from client but not processed by server code
Error Detail
============
Correlation ID: 429adb3a-09c9-4e73-88b5-19e762265a6f
Description: BpmData form feedback has been received from client but not processed by server code
Program: Epicor.Customization.Bpm.dll
Method: FinalizeBpmContextUsage
Table: undefined
Field: undefined
Eventually I get this popup:
The request has not finished processing. You have the option to keep waiting or enable the UI to interact with it. Be aware that changes may occur if you decide to enable the UI and the request finishes processing while you interact with it.
The I also get these errors that pop up until the delete process is done:
## System Information ##
==================
AppServer Connection: https://(REMOVED)
Form Name: System Monitor
Customization Name:
Menu ID: SUMN1121
Software Version: 2025.2.0
============
Server Side Exception
Error accessing the database: Transaction (Process ID 801) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Exception caught in: Epicor.ServiceModel
## Error Detail ##
============
##!Correlation ID:##! b5f54e1d-bcea-4af3-8fea-db23820dca80
##!Description:##! Error accessing the database: Transaction (Process ID 801) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
##!Program:##! Microsoft.Data.SqlClient.dll
##!Method:##! OnError
##!Original Exception Type:##! SqlException
##!SQL Line Number:##! 1
##!SQL Error Number:##! 1205
##!Framework Method:##! ExecSqlCommand
##!Framework Line Number:##! 76
##!Framework Column Number:##! 21
##!Framework Source:##! ExecSqlCommand at offset 621 in file:line:column C:\_releases\ICE\ICE5.1.100.0\Source\Server\Internal\Lib\SolutionTracker\SolutionTracker.cs:76:21
## Client Stack Trace ##
==================
at Epicor.ServiceModel.Channels.ImplBase.CallWithCommunicationFailureRetry(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, RestRpcValueSerializer serializer)
at Epicor.ServiceModel.Channels.ImplBase.CallWithMultistepBpmHandling(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Epicor.ServiceModel.Channels.ImplBase.Call(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Ice.Proxy.BO.GenXDataImpl.StoreData(GenXDataDataSet dsGenXData)
at Ice.Lib.Framework.GenXObject.StoreData(GenXDataDataSet ds)
at Ice.Lib.Framework.GenXObject.handleChunkAndSave(Boolean doCompression, String company, String productID, String typeCode, String cgcCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.GenXObject.ChunkNSaveStringByID(String company, String productID, String typeCode, String cgcCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.GenXObject.ChunkNSaveStringByID(String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.FormFunctions.ChunkNSaveStringByID(Session s, String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
at Ice.Lib.Framework.FormFunctions.ChunkNSaveStringByID(Object sender, String company, String productID, String typeCode, String key1, String key2, String key3, String description, String comment, String version, Boolean layerWIP, String data)
## Inner Exception ##
===============
Transaction (Process ID 801) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
## ##
My custom action does include a bpmform to ask the user if they are sure they want to delete. The delete action seems to eventually finish removing all the rows. Eventually, the final dialog box from my UBAQ BPM comes up to show all records have been deleted.
How can I deal with this long delay, and give the user some feedback that they are doing the right thing by continuing to wait? I would like to show a time remaining bar, or something. At the very least, I want to suppress all those errors until the custom action actually finishes and shows the last dialog.
Any ideas?