导入销售订单和报价单时重新计算行净额
本文介绍在导入销售订单和报价单时系统是否以及如何重新计算行净额。 它还介绍了如何控制不同版本中的行为 Microsoft Dynamics 365 Supply Chain Management。
如何在导入时计算对净行金额的更新
Supply Chain Management 版本 10.0.23 引入了缺陷修复 604418。 此缺陷修复更改了导入现有销售订单和报价单的更新时可更新或重新计算行上的净额字段的条件。 在版本 10.0.29 中,您可以通过打开导入时计算行净额功能来替换此缺陷修复。 此功能具有相似的作用,但它提供了一个全局设置,可以在必要时恢复为旧行为。 尽管新行为使系统以更直观的方式工作,但它可能会在满足以下所有条件的特定情况下产生意外结果:
- 使用 Open Data Protocol (OData) 通过销售订单行 V2、销售报价单行 V2 或退货单行实体导入用于更新现有记录的数据,包括使用双重写入、经 Excel 导入/导出功能以及某些第三方集成的情况。
- 已实施的贸易协议评估策略 将建立更改策略,限制对 销售订单行、销售报价单行和/或退货单行上的净额 字段的更新。 请注意,对于退货单行,始终会计算净额字段,不能手动设置。
- 导入的数据包括:对行上的净额字段所做的更改,或者将导致对一个或多个现有行记录重新计算行上的净额字段值的更改(如单价、数量或折扣)。
在这些特定情况下,贸易协议评估政策的作用是限制更新行上的净额字段。 此限制称为更改政策。 由于此政策的缘故,当您使用用户界面编辑或重新计算字段时,系统会提示您确认是否要进行更改。 但是,在导入记录时,系统必须为您做出选择。 在版本 10.0.23 之前,系统始终将行净额保持不变,除非传入行净额为 0(零)。 但是,在较新的版本中,系统始终根据需要更新或重新计算净额,除非已明确指示系统不要执行此操作。 虽然新行为更合乎逻辑,但如果您已在运行采取旧行为的流程或集成,那么这可能会给您带来问题。 本文介绍如何还原到旧行为(如果必须)。
控制版本 10.0.29 及更高版本中的行净额计算
Supply Chain Management 版本 10.0.29 引入了一个名为导入时计算行净额的功能。 此功能将名为计算行净额的选项添加到应收帐款参数页中。 此选项允许您在新行为和旧行为之间进行选择,以计算导入时的行净额。
启用或关闭“导入时计算行净额”功能
当您更新到版本 10.0.29 时,默认情况下将启用导入时计算行净额功能,并且新的计算行净额选项最初设置为是。 是设置对应于新的标准行为。 它与关闭该功能后的系统行为匹配,但 CalculateLineAmount 参数的功能除外,如本文后面所述。 无设置与版本 10.0.23 之前的系统行为匹配,并且主要用于支持旧版集成方案。
从 Supply Chain Management 版本 10.0.36 开始,此功能是强制性的,无法关闭。 如果您运行的版本早于 10.0.36,管理员可以通过在功能管理工作区中搜索导入时计算行净额功能来打开或关闭此功能。
设置“计算行净额”选项
打开导入时计算行净额功能后,您可以按照以下步骤设置计算行净额选项。
转至应收帐款 > 设置 > 应收帐款参数。
在价格选项卡上,在通过集成进行行净额计算快速选项卡上,将计算行净额选项设置为以下值之一:
- 是 –系统始终会在需要时重新计算和更新行金额。 (因此,它将忽略贸易协议评估政策。)
- 否 –如果任何行的现有或传入净额为 0(零),则该行的值将根据其他值(如单价、数量和折扣)重新计算。 如果现有或传入净额不同于 0(零),并且针对行上的净额字段设置了更改政策,则不会重新计算或更新该字段,即使对行价格、数量和/或折扣的传入更改意味着应重新计算行总计也不例外。 此行为与版本 10.0.22 的行为匹配。
“导入时计算行净额”功能如何影响 CalculateLineAmount 参数
打开导入时计算行净额功能后,SalesLine
和 SalesQuotationLine
表的 CalculateLineAmount
参数无效。 相反,该行为由上一节中描述的计算行净额选项全局控制。 因此,打开该功能后,您不得对 CalculateLineAmount
值有任何依赖。
关闭导入时计算行净额功能后,SalesLine
和 SalesQuotationLine
表的 CalculateLineAmount
参数的工作方式与其在 Supply Chain Management 版本 10.0.23 至 10.0.28 中的工作方式相同,如下一节所述。
控制 10.0.28 及更早版本中的行净额计算
在版本 10.0.23 中引入缺陷修复 604418 后,可以选择在编辑行净额或由于其他更改(例如更新了物料价格)而必须重新计算行净额时,每个相关数据实体应有的行为方式。 您可以通过将每个行的新 CalculateLineAmount
参数设置为导入的文件中的以下值之一来控制此行为:
CalculateLineAmount
= 1 – 无论是否为该字段设置了更改策略,也无论传入行或现有行净额的值如何,行上的净额 字段始终重新计算和更新。CalculateLineAmount
= 0 –如果任何行的现有或传入净额为 0(零),则该行的值将根据其他值(例如单价、数量和折扣)重新计算。 如果现有或传入净额不同于 0(零),并且在行上的净额字段上设置了更改策略,则不会重新计算或更新该字段。
系统行为取决于您的 Supply Chain Management 版本:
- 在版本 10.0.22 和更早版本中,系统的行为始终像
CalculateLineAmount
设置为 0 时一样,并且无法使其行为像CalculateLineAmount
设置为 1 时一样。 - 在版本 10.0.23 到 10.0.28 中,对于导入文件中
CalculateLineAmount
未明确设置为 0 的所有行,系统的行为就像其设置为 1 时一样。