我知道Acumatica不推荐这样做,但是除了使用存储过程,我们别无选择。我创建了一个新的处理屏幕来执行存储过程,但面临超时异常。
我的代码示例如下:
using (new PXConnectionScope())
{
using (PXTransactionScope ts = new PXTransactionScope())
{
PXDatabase.Execute("MYSTOREDPROCEDURE", pars.ToArray());
ts.Complete();
}
}
答案 0 :(得分:0)
尝试在PXLongOperation
上下文中执行长时间运行的代码。我认为这些连接与定期ping建立连接,以避免在等待数据到达时超时。
PXLongOperation.StartOperation(Base, delegate()
{
// Code executed in long operation context
});
如果您的代码是从处理委托的上下文中执行的,那么我认为它应该已经包装在一个长操作中。否则,应该在动作事件处理程序中使用长时间的操作。
最后的解决方法是增加web.config
文件中的超时。
对于SAAS托管和获得Acumatica ISV认证,存储过程的使用是一个主要问题。对此可能没有官方支持,但我怀疑它会消失。