Loading

排除 Salesforce 计费中的“取消并重新计费”问题

发布日期: Mar 14, 2025
描述
“取消”和“重新计费”可能会因为许多问题而失败。下面解释了各种错误消息以及如何解决它们。
解决方案
超出 Apex CPU 时间限制的问题
Salesforce 计费是一个受管软件包,受 Salesforce 执行管理器和限制的约束。要取消已过帐的发票并重新计费,需要修改发票和发票行以及相关订单和订单产品,创建贷方票据,并为每个发票行创建贷方票据行和贷方票据分配。这可以触发这些对象上的自定义自动化。此外,从贷方票据或发票到帐户的累计汇总字段也可以触发帐户对象的自动化。预防是最好的方法。如果这种情况发生在生产环境中,一种方法是用贷方票据或借方票据进行更正。如果无法这样做,那么禁用部分或全部自定义自动化(流、触发器)可能允许取消和重新计费。不要禁用 CPQ 或计费触发器,因为取消和重新计费需要这些触发器。

错误消息:“我们无法取消此发票,因为它的订单或帐户有发票日期较晚的其他发票。请取消稍晚的发票,并重试。”
原因:一个或多个订单产品的发票行来自处于草稿或已过帐状态的稍晚发票。

解决方案:必须先取消较晚的发票并重新计费,然后才能对较早的发票执行这些操作。这是有意为之,因为订阅的计费是按顺序进行的,更改较早的发票会对稍晚的发票产生影响。

如果处于“草稿”状态的稍晚发票行位于已取消的发票上,这是由于已在 Summer '23 版本中修复的功能缺陷造成的。在这种情况下,可以使用本 knowledge 文章中概述的触发器禁用方法安全地将发票行更新为已取消。

“失败 - 无法取消此发票,因为它已经激活”错误消息
当有付款、贷方票据或借方票据分配给发票或该发票上的任何行时,不能在发票上使用取消和重新计费或贷项。
解决方案请参考这篇 Knowledge 文章。

税务错误
这些错误仅在使用外部税务集成时出现。错误来自税务集成。

错误消息:“找不到文档。”
当发票被删除或从未存在于税务入口网站中时,会引发此错误。解决这个问题的一种方法是将所有发票行的税务状态设置为“排队”,以强制税务调出来创建记录。如果发该操作成功,那么取消和重新计费将起作用。另一种方法是将税务规则字段“应纳税(是/否)”更改为“否”,然后取消并重新计费。不要忘记重置该字段。此外,请确保在没有其他人使用计费软件包且没有发票运行处于活动状态时执行此操作,否则创建的发票将不会计税。

错误消息:文档被锁定,无法修改。
这是因为已过帐发票的取消和重新计费不会在税务入口网站中创建贷方票据。相反,它会试图使原始发票无效,并将税款复制到 Salesforce 中的贷方票据。税务提供商将定期提交税务记录,在提交日期之后,将不允许更改发票的状态。请向您的提供商咨询详情,以了解如何在需要时解锁发票。与其取消并重新计费,不如考虑使用贷方票据或借方票据进行更正。  

错误消息:交易已被取消
检查税务入口网站,查看发票是否显示为无效状态。如果是,您可以更改它以匹配发票状态,如下所示:对于原始发票,将状态设置为“未提交”。对于已过帐的发票,将其设置为“已提交”。然后,您应该能够成功地使用取消和重新计费。

错误消息:结束日期不能早于开始日期。
插入失败。第 0 行的第一个异常;第一个错误:FIELD_CUSTOM_VALIDATION_EXCEPTION,结束日期不能早于开始日期
原因:一个或多个发票行的结束日期早于开始日期。
解决方法:通过将结束日期设置为等于开始日期来更新受影响的发票行。这必须在禁用计费触发器的情况下完成。最好的方法是使用匿名 Apex,使用全局 Apex API TriggerControl 手动禁用 CPQ 和计费触发器。本文中有一个示例代码,说明如何为发票执行该操作。


另请参阅


 
知识文章编号

000395735

 
正在加载
Salesforce Help | Article