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