You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨多对象的Salesforce校验:编写规则确保各对象Billing Entity一致

Salesforce 多对象 Billing Entity 一致性校验规则实现方案

以下针对 Quote、Quote Line、Opportunity、Order 四个对象分别编写校验规则,确保它们的 Billing Entity 始终保持一致。假设所有对象的 Billing Entity 字段 API 名称为 Billing_Entity__c,关联关系字段使用标准或常见自定义字段名。

1. Quote 对象校验规则

规则名称:Quote_Billing_Entity_Consistency
激活条件:始终激活
错误公式:

OR(
  // 与关联 Opportunity 的 Billing Entity 不一致
  Billing_Entity__c <> Opportunity.Billing_Entity__c,
  // 存在任意 Quote Line 的 Billing Entity 与当前 Quote 不一致
  EXISTS(
    SELECT Id FROM QuoteLineItems WHERE Billing_Entity__c <> Billing_Entity__c
  ),
  // 与关联 Order 的 Billing Entity 不一致(若存在关联 Order)
  AND(
    OrderId != null,
    Order.Billing_Entity__c <> Billing_Entity__c
  )
)

错误提示:Quote 的 Billing Entity 必须与关联的 Opportunity、所有 Quote Line 及关联 Order 的 Billing Entity 保持一致

2. Quote Line 对象校验规则

规则名称:QuoteLine_Billing_Entity_Consistency
激活条件:始终激活
错误公式:

OR(
  // 与所属 Quote 的 Billing Entity 不一致
  Billing_Entity__c <> Quote.Billing_Entity__c,
  // 与关联 Opportunity(通过 Quote)的 Billing Entity 不一致
  Billing_Entity__c <> Quote.Opportunity.Billing_Entity__c,
  // 与关联 Order(通过 Quote)的 Billing Entity 不一致(若存在)
  AND(
    Quote.OrderId != null,
    Billing_Entity__c <> Quote.Order.Billing_Entity__c
  )
)

错误提示:Quote Line 的 Billing Entity 必须与所属 Quote、关联 Opportunity 及 Order 的 Billing Entity 保持一致

3. Opportunity 对象校验规则

规则名称:Opportunity_Billing_Entity_Consistency
激活条件:始终激活
错误公式:

OR(
  // 存在任意关联 Quote 的 Billing Entity 不一致
  EXISTS(
    SELECT Id FROM Quotes WHERE Billing_Entity__c <> Billing_Entity__c
  ),
  // 存在任意关联 Order 的 Billing Entity 不一致
  EXISTS(
    SELECT Id FROM Orders WHERE Billing_Entity__c <> Billing_Entity__c
  )
)

错误提示:Opportunity 的 Billing Entity 必须与所有关联 Quote、Order 的 Billing Entity 保持一致

4. Order 对象校验规则

规则名称:Order_Billing_Entity_Consistency
激活条件:始终激活
错误公式:

OR(
  // 与关联 Opportunity 的 Billing Entity 不一致
  Billing_Entity__c <> Opportunity.Billing_Entity__c,
  // 与关联 Quote 的 Billing Entity 不一致(若存在关联 Quote)
  AND(
    QuoteId != null,
    Billing_Entity__c <> Quote.Billing_Entity__c
  ),
  // 关联 Quote 下存在 Quote Line 的 Billing Entity 不一致(若存在关联 Quote)
  AND(
    QuoteId != null,
    EXISTS(
      SELECT Id FROM Quote.QuoteLineItems WHERE Billing_Entity__c <> Billing_Entity__c
    )
  )
)

错误提示:Order 的 Billing Entity 必须与关联 Opportunity、Quote 及所有 Quote Line 的 Billing Entity 保持一致

注意事项

  • 请根据实际环境中字段的 API 名称调整公式中的字段引用,确保字段名准确无误。
  • 若某些对象间的关联关系并非必填(例如 Quote 不一定关联 Order),公式中的 AND(关联字段 != null, ...) 逻辑可避免空值导致的错误校验。
  • 校验规则会在记录创建或编辑时触发,阻止不符合一致性要求的记录保存。

内容的提问来源于stack exchange,提问作者sriniD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:00:16