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

Salesforce商机阶段验证规则:按Profile配置管理员/普通用户权限

SFDC商机(Opportunity)验证规则配置方案

需求边界

需要通过验证规则实现两类用户的商机操作权限管控:

  • 系统管理员(对应Profile为System Administrator):对所有状态(含Closed/Won等已关闭状态)的商机拥有编辑、关闭、重开全权限,不受规则拦截
  • 普通用户(对应Profile为Normal User):支持编辑未关闭的开放状态商机、将开放商机转为关闭状态;禁止重开已关闭商机、禁止编辑已关闭商机的任意字段

原有规则问题

你之前写的逻辑存在核心问题,无法覆盖全部要求:

  1. 语法错误:缺少逻辑连接符、冗余嵌套、括号不匹配,不符合SFDC验证规则的语法规范
  2. 逻辑漏洞:未对「操作前商机状态」做合法场景放行判断,会误拦截普通用户关闭开放商机的合法操作;另外直接用$Profile.Id匹配名称字符串是错误用法,$Profile.Id存储的是18位的记录唯一ID,不是Profile的显示名称,直接写名称会导致管理员判断失效
  3. 基础逻辑说明:SFDC验证规则的触发逻辑为规则返回TRUE时拦截操作并抛出错误提示,返回FALSE时放行操作

完整可用规则代码

注意:如果你的环境是按Profile名称做判断,直接用下方代码即可;如果要按ID判断,请把$Profile.Name = "System Administrator"替换为你org内对应系统管理员Profile的实际18位ID

AND(
    /* 排除管理员白名单,管理员直接放行所有操作 */
    $Profile.Name <> "System Administrator",
    /* 只要操作的是操作前就已经处于关闭状态的商机,直接拦截 */
    PRIORVALUE(IsClosed) = TRUE
)

逻辑校验(覆盖全部要求)

  • 管理员操作任意状态商机:第一个判断条件返回FALSE,整体规则返回FALSE,直接放行,符合全权限要求
  • 普通用户编辑开放状态商机:操作前商机IsClosed = FALSE,第二个判断条件返回FALSE,整体规则返回FALSE,放行
  • 普通用户将开放商机转为关闭:操作前商机IsClosed = FALSE,第二个判断条件返回FALSE,整体规则返回FALSE,放行
  • 普通用户编辑已关闭商机的任意字段:操作前商机IsClosed = TRUE,且不是管理员,整体规则返回TRUE,拦截
  • 普通用户重开已关闭商机:操作前商机IsClosed = TRUE,且不是管理员,整体规则返回TRUE,拦截

配置提示

  • 规则创建完成后,需要在错误信息栏填写明确的操作提示,例如:普通用户无权重开或编辑已关闭的商机,如需操作请联系系统管理员
  • 上述默认逻辑为「除系统管理员外,所有其他用户均遵循普通用户权限规则」,如果需要仅对Normal User这个Profile生效、其余非管理员用户不受限制,将代码中第一个判断条件替换为$Profile.Name = "Normal User"即可
  • 如果需要给其他Profile(如销售总监)授予已关闭商机的操作权限,可在白名单中追加对应Profile判断,例如:NOT(OR($Profile.Name = "System Administrator", $Profile.Name = "Sales Director"))
  • 若要通过Profile ID做判断,请先进入SFDC的Profile设置页,从URL中获取对应Profile的18位唯一ID替换代码中的名称判断,不要直接在$Profile.Id后写Profile显示名称,会导致判断失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:09:18