如何在acumatica中使用webservices api导出数据时设置超时

时间:2017-04-07 08:57:44

标签: c# web-services acumatica

这是第一个场景: - 我使用webservices api到Bill and Adjustments屏幕(AP301000)在acumatica系统中创建新的“账单”文档。 - 之后,我需要使用webservices加载当前屏幕(AP301000)的应用程序选项卡菜单中的所有文档记录以进行启动过程。问题是有很多文件将被加载。这是大约9500份文件,当然需要更多时间才能继续(大约10分钟)。

导出处理此Aplication Tab菜单中的所有记录时,我总是遇到错误。并且错误消息是“Operation Timeout”。

是否有任何引用通过webservices api设置大型文档导出过程的超时。

sCon.getLoginSettlementVoucher(context);
AP301000Content billSchema2 = context.AP301000GetSchema();
List<Command> cmds = new List<Command>();
billSchema2.DocumentSummary.Type.Commit = false;
billSchema2.DocumentSummary.Type.LinkedCommand = null;

var command2 = new Command[]
{
        new Value { Value = "Bill", LinkedCommand = billSchema2.DocumentSummary.Type},
        new Value { Value = "17000034", LinkedCommand = billSchema2.DocumentSummary.ReferenceNbr},
        billSchema2.Applications.DocTypeDisplayDocType,
        billSchema2.Applications.ReferenceNbrDisplayRefNbr,
        billSchema2.Applications.Balance,
        billSchema2.Applications.AmountPaid
 };
 try
 {
        var applications = context.AP301000Export(command2, null, 0, false, true); 
        ..........................
  }
  catch(Exception x){} finally{context.Logout()}

1 个答案:

答案 0 :(得分:4)

Here is the link to WebClientProtocol.Timeout property on MSDN - 检查MSDN的方法更好,因为Timeout属性是从.Net框架中的一个基类派生的

这样做的方法是更改​​Screen对象的Timeout值。 在您的情况下,我认为该对象是&#34; context&#34;。

默认值为100000,以毫秒为单位,因此为1分40秒。如果你要把这个值改为700000大约是11分半,你应该没问题。

以下是如何操作:

context.Timeout = 700000;