范围规则注意事项
在使用范围规则时,请谨记这些注意事项和限制。
所需的 Edition
| 适用于:Lightning Experience |
| 适用于:Performance、Unlimited 和 Developer Edition |
创建范围规则
版本影响可拥有的活动规则数量。
- 在 Developer Edition 中,为每个对象创建最多 2 个有效范围规则,在 Performance 和 Unlimited Edition 中,为每个对象创建最多 5 个有效范围规则。
- 为每个用户的每个对象仅创建一个范围或限制规则。对于给定对象,只有一个范围或限制规则的用户条件字段必须评估为给定用户的
true。 - 在包含多个对象数据的报表中,在选择按范围筛选时,应用所有相关范围规则。例如,如果您有一个带有已添加客户字段的业务机会报表,则在筛选记录时会考虑业务机会和客户范围规则。
- 为对象创建范围规则仅影响该对象,不影响子对象。
- 参考“所有人”字段时,必须在语法中指定对象类型。例如,“事件”对象上的“所有人”字段可以包含用户或队列,但范围规则中不支持队列。因此,在条件允许用户时,有必要在记录条件语法中指定 Owner:User。
- 您可以在记录条件字段中使用点标记法引用另一个对象的字段。您只能使用一个“点”(目标实体的一个查找级别)。例如,
Owner.UserRoleId。 - 在规则的记录条件中,您不能引用对象父级上的字段。例如,如果您正在为任务对象创建规则,则记录条件不能引用父级活动对象上的字段。
- 记录条件和用户条件字段支持这些数据类型。
- 布尔值
- 日期 (yyyy-MM-dd)
- 日期时间 (yyyy-MM-dd HH:mm:ss)
- 双
- 整数
- 参考
- 字符串
- 时间
- 单一选项列表
备注 “记录条件”字段支持以逗号分隔的 ID 或字符串值。 - 不支持在记录条件中包含空值或空值,这可能会导致意外行为。
- 请勿对 Event.IsGroupEvent 创建规则,这表示事件是否拥有被邀请人。
- 不支持未处理活动或活动历史相关列表中的范围规则。相反,使用活动时间线,或在任务或事件对象中创建规则;这些对象使用在 OpenActivity 或 ActivityHistory 对象中可用的字段。
- 对于列表视图和报表,您可以通过元数据 API 应用范围(使用 ListView 类型上的
filterScope字段和报表类型“范围”上的scope字段)。 - 除非您使用 SOQL,否则范围规则仅支持 EQUALS 运算符。不支持使用“AND”和“OR”运算符。
- 如果您在记录或特定于 Salesforce 组织的用户标准字段中包含 ID(例如角色、记录类型或简档 ID),在与最初创建范围规则的组织不同的情况下,必须修改目标组织的 ID。在 Sandbox 或生产组织之间部署规则时,请记住此注意事项。
在范围规则中使用 SOQL
- 您只能在通过 API 创建范围规则时使用记录条件中的 SOQL 运算符。
- 在记录条件中使用 SOQL 运算符时,“选择”语句(包含嵌套的“选择”语句)必须包含“USING SCOPE EVERYTHING”。USING SCOPE EVERYTHING 是范围规则的唯一有效范围子句语法。
- SOQL 运算符不支持 $User 语法,但 $User.Id 除外。不支持 SOQL 运算符中的动态查询,包括在其他用户对象字段上。
- 不支持使用与 SOQL 查询对象和范围规则对象相同的对象。
- SOQL 类型 RecordCriteria 中的左侧操作数必须查询单个 ID(主键)或引用(外键)字段。有关您可在
SELECT语句中使用的WHERE子句字段表达式中使用的有效运算符列表,请参阅比较运算符。
示例
"recordFilter":"SOQL(OwnerId, Select Id from User USING SCOPE
Everything LIMIT 2)"
左侧操作数在本例中为 OwnerId。
- SOQL 运算符不支持这些对象:
- ActivityHistory
- 附件
- 事件
- EventAttendee
- 备注
- OpenActivity
- 标记(AccountTag、ContactTag 和所有其他标记对象)
- 任务
修改范围规则
- 删除范围规则中引用的自定义字段会导致错误。
- 要禁用范围规则,请先删除已选择按范围筛选的列表视图和报表。禁用范围规则后,列表视图和报表不具有功能或不可修改。
- 范围规则支持用户条件字段中的自定义权限。如果您删除范围规则中使用的自定义权限,则该规则将不再有效。
- 范围规则支持记录和用户条件中的自定义选项列表值。如果删除范围规则使用的自定义选项列表值,规则无法如预期正常工作。
客户、联系人和个人客户
- 范围规则不支持客户对象中的 IsPersonAccount 字段。在设置范围规则时,请勿在记录条件中使用 IsPersonAccount 字段,例如 PersonDepartment 或 PersonLeadSource。在“客户”页面上查找 IsPersonAccount 字段列表。
- 如果从联系人列表视图导航到个人客户详细信息页面,将出错。要在客户对象中设置范围规则时导航到个人客户详细信息页面,使用客户列表视图,例如所有客户。
- 在相关列表中,用户可以访问的所有相关记录可见,不管范围如何,联系人角色相关列表除外。在联系人对象上应用范围规则时,范围会应用到显示在客户、业务机会、个案和合同记录上的联系人角色相关列表。因此,即使列表已筛选,用户(例如销售团队成员)也可以查看筛选的联系人角色集,无需了解该列表已筛选。
- 在组织使用重复规则防止创建重复记录时,范围规则将限制显示的潜在重复项,即使在打开绕过共享规则时。范围规则中范围集会限制重复记录。
性能注意事项
- 构建范围规则是为了以一种性能化的方式支持记录访问需求。数据量和架构是影响规则性能的因素。如果您创建的规则效率低下,或者如果数据模型包含大量数据,以致应用范围规则时速度缓慢,Salesforce 保留禁用范围规则的权利。为了防止限制或停用,在生产环境中启用范围规则之前,请测试您计划在 Sandbox 环境中应用的范围规则。
- 要测试使用 SOQL 操作符的规则的性能影响,可以使用 SOQL 语句并在您选择的 API 客户机中运行它。如果对于一个给定的用户来说很快,那么这个规则可能会有效地运行。
- 如果规则性能不佳,请隔离导致性能下降的字段。与 Salesforce 客户支持部门协作,了解字段是否可编入索引。
本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!

