税收计算绩效会影响交易记录

有时,交易会受到税款计算存在的性能问题的影响。 若要解决此问题,请根据需要按照以下部分中的步骤进行操作。

查看交易行计数

确定交易是否有很多行(例如,多于几百行)。 如果没有,请转到下一节。 如果交易确实有几百行,应延迟税款计算。 有关详细信息,请参阅为日记帐启用延迟税款计算

接下来,您可以确定是否满足以下任何条件:

  • 有来自大文件的导入交易。
  • 多个会话同时处理同一个交易税款计算。
  • 交易有多个行,视图会实时更新。 例如,更改行的字段时,会实时更新普通日记帐页上的计算销售税金额字段。

如果满足这些条件的任何一个,请延迟税款计算。

查看调用堆栈

查看调用堆栈,确定是否多次调用了税款计算。 如果不是,请转到下一节。 如果调用堆栈被多次调用,请按照下列步骤帮助减少税款计算次数。

  1. 如果日记帐已考虑了交易,请延迟税款计算。 有关详细信息,请参阅为日记帐启用延迟税款计算
  2. 如果交易是采购订单,并且应用程序版本晚于 10.0.15,则可以通过启用外部测试 PurchTableChangeMgmtDistributionUpdateOnToggle_KillSwitch来延迟税务计算,直到最终计算为止。

查看调用堆栈时间线

查看调用堆栈时间线,确定是否存在以下问题。 如果这样做,请启用外部测试以 TaxUncommittedDoIsolateScopeFlighting 解决问题。

  • 交易将导致系统停止响应,直到会话结束。 因此,交易无法计算税收结果。
  • 这些 TaxUncommitted 方法比其他方法花费的时间要长。 例如,该方法 TaxUncommitted::updateTaxUncommitted() 可能需要 43,347.42 秒,但其他方法可能需要 0.09 秒。

自定义和调用税务计算

自定义时,不要对 insert() 每行调用税务计算或 update() 方法。 应在交易级别调用税款计算。

确定是否存在自定义

如果您已经完成了前面几节中的步骤,但未发现问题,请确定是否存在自定义。 如果不存在自定义,请创建 Microsoft 服务请求寻求进一步支持。