QBO3的批量应用不适用于所有匹配的记录

时间:2017-10-05 12:07:28

标签: sql-server queue

在我们的QBO3系统中,我们在生成文档并将其保存到我们的FTP站点时存在间歇性问题。当发生这种情况时,工作流程> “仪表板错误”报告将向我们显示错误的步骤。

一旦我们的FTP服务器不再负载,我使用ImportFile/BatchApply重新执行相关的工作流程步骤。具体来说,我的查询是:

DecisionStep/Search?DecisionStepTemplateID=X&ErrorDate!=&SqlFilter=Active&DisplaySize=0&Batch=1000

采取以下行动:

DecisionStep/Start?ID={DecisionStepID}

观察:

  • 当我点击查询时,我看到了相应的结果
  • 当我点击预览时,我看到了相应的结果
  • 当我单击Batch时,将创建导入文件,成功处理所有导入文件队列记录
  • 工作流程> Dashboard By Errors显示一些错误

使用批量申请后,为什么还有错误?

1 个答案:

答案 0 :(得分:1)

在您的查询中,指定BatchSize = 1000;这会将查询结果限制为前1000行。 将BatchSize设置为大于预期结果集的值。在此示例中,您应该能够从Workflow>中确定预期结果集。仪表板出错。

<强> TLDR;将BatchSize = 25用于查询和预览,然后将其更改为10000以进行批处理。

ImportFile / BatchApply的UI提供了4个按钮:

  • 查询:执行您的查询,以便在浏览器中查看结果
  • 预览:执行您的查询,并显示匹配的操作,以便您可以在浏览器中查看结果
  • 应用:将查询+操作的执行排队,以便以后执行为一个长事务,并
  • 批处理:将查询+操作的执行排队,以便以后执行为导入文件。

这两个按钮中的前两个可以是长时间运行的事务,并且可以在负载均衡器上超时。 “应用”和“批处理”按钮对操作进行排队,因此它不会成为长时间运行的事务,而且会超时。

使用查询和预览按钮时,请考虑使您的DisplaySize和 BatchSize相当小(例如25或50),这样您就不太可能成为受到超时。当您准备好应用或批量时,您可以将DisplaySize / BatchSize更改为较大的值(例如10000),以便所有匹配的记录都应用了Action它们。