如何执行存储过程

时间:2019-05-24 11:02:37

标签: acumatica

我知道Acumatica不推荐这样做,但是除了使用存储过程,我们别无选择。我创建了一个新的处理屏幕来执行存储过程,但面临超时异常。

我的代码示例如下:

using (new PXConnectionScope())
{
  using (PXTransactionScope ts = new PXTransactionScope())
   {
     PXDatabase.Execute("MYSTOREDPROCEDURE", pars.ToArray());
     ts.Complete();
    }
 }

1 个答案:

答案 0 :(得分:0)

尝试在PXLongOperation上下文中执行长时间运行的代码。我认为这些连接与定期ping建立连接,以避免在等待数据到达时超时。

PXLongOperation.StartOperation(Base, delegate()
{
   // Code executed in long operation context
});

如果您的代码是从处理委托的上下文中执行的,那么我认为它应该已经包装在一个长操作中。否则,应该在动作事件处理程序中使用长时间的操作。

最后的解决方法是增加web.config文件中的超时。 对于SAAS托管和获得Acumatica ISV认证,存储过程的使用是一个主要问题。对此可能没有官方支持,但我怀疑它会消失。