编程语言
首页 > 编程语言> > C#-如何在Acumatica中使用WebServices API导出数据时设置超时

C#-如何在Acumatica中使用WebServices API导出数据时设置超时

作者:互联网

这是第一种情况:
-我使用webservices api在“帐单和调整”屏幕(AP301000)中在acumatica系统中创建了新的“帐单”文档.
-在那之后,我还需要使用Web服务将当前屏幕(AP301000)的“应用程序”选项卡菜单中的所有文档记录加载到一起,以进行取消处理.问题是要加载很多文档.这大约需要9500个文档,当然还需要更多时间才能进行(大约需要10分钟).

在此“应用程序选项卡”菜单中,导出过程中的所有记录总是会出现错误.错误消息是“操作超时”.

是否有任何参考资料来设置通过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()}

解决方法:

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

这样做的方法是更改​​Screen对象的Timeout值.
就您而言,我认为该对象是“上下文”.

默认值为100000,单位是毫秒,所以1分40秒.如果将此值更改为700000(大约11分钟半),则应该没问题.

这是操作方法:

context.Timeout = 700000;

标签:acumatica,web-services,c
来源: https://codeday.me/bug/20191026/1933817.html