TaxTrans 中的字段值不正确

如果 TaxTrans 中的字段值不正确,请使用本文中的信息来尝试解决此问题。

值概览

以下列表显示了 TaxTransTaxUncommittedTmpTaxWorkTrans 是怎样的相似数据集,其工作方式不同。

  • TaxTrans 是数据库中一直保留的最终的已过帐税收交易结果。
  • TaxUncommitted 是数据库中持续保留的中间的计算得出的税收结果(如果适用),以后将在过帐中使用。
  • TmpTaxWorkTrans 是内存表中临时的计算得出的税收结果(表类型 = InMemory)。

如果找到错误 TaxTrans 列的根本原因,则还会发现错误 TaxUncommittedTmpTaxWorkTrans 列的根本原因,因为三列相互复制。

通常,在计算税款时,将生成 TmpTaxWorkTrans,然后生成 TaxUncommitted(如果适用)。 在税款过帐期间,生成 TaxTrans

添加中断点

要添加中断点,请完成以下步骤:

  1. 在扩展中添加insert()update()扩展和断点,如下所示。

    • TaxTrans

      [ExtensionOf(tableStr(TaxTrans))]
      public final class TaxTrans_Extension
      {
          public void insert()
          {
              next insert();
          }
      
          public void update()
          {
              next update();
          }
      
      }
      
    • TaxUncommitted

      [ExtensionOf(tableStr(TaxUncommitted))]
      public final class TaxUncommitted_Extension
      {
          public void insert()
          {
              next insert();
          }
      
          public void update()
          {
              next update();
          }
      
      }
      
    • TmpTaxWorkTrans

      [ExtensionOf(tableStr(TmpTaxWorkTrans))]
      public final class TmpTaxWorkTrans_Extension
      {
          public void insert(boolean _ignoreCalculatedSalesTax)
          {
              next insert(_ignoreCalculatedSalesTax);
          }
      
          public void update(boolean _ignoreCalculatedSalesTax)
          {
              next update(_ignoreCalculatedSalesTax);
          }
      
      }
      
  2. 或者,当未包含 TaxUncommitted,可以直接添加断点。

    • TaxTrans.insert(), TaxTrans.update()
    • TmpTaxWorkTrans.insert(), TmpTaxWorkTrans.update()

重现和调试

设置中断点后,在调试过程中可以看到每个数据持久性变化。 要查找 TaxTransTaxUncommittedTmpTaxWorkTrans 列不正确的根本原因,请查看并注意以下各项:

  • 列正确的最后一个中断点。
  • 列不正确的第一个中断点。
  • 在这两个点之间发生了什么。

确定是否存在自定义

如果已完成上一部分中的步骤,但尚未解决问题,请确定是否存在自定义。 如果不存在自定义,请联系 Microsoft 支持部门寻求帮助。