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

Salesforce插入Pedido__c时受限选择列表值无效问题排查

问题排查方案

1. 核对选择列表的API值与显示值

Salesforce选择列表支持显示值和API值分离配置,比如显示值是"Spain",但后台实际识别的API值可能是"ES"这类编码。手动UI操作使用的是显示值,但代码插入必须传入API值才会被系统认可。

  • 检查路径:设置 → 对象管理器 → Pedido__c → 字段与关系 → Direccion_entrega__CountryCode__s → 查看每个选项的「API值」列,确认是否与你传入的"Spain"一致。

2. 检查记录类型的选择列表限制

如果Pedido__c启用了记录类型,不同记录类型可能对该选择列表的可用值做了限制:

  • 确认代码中插入的Pedido__c记录对应的记录类型,是否在该记录类型配置下,"Spain"属于允许的可选值。
  • 检查路径:设置 → 对象管理器 → Pedido__c → 记录类型 → 编辑对应记录类型 → 找到Direccion_entrega__CountryCode__s字段,确认"Spain"在可用值列表中。

3. 排查值的隐形字符或大小写问题

即使肉眼看值是"Spain",也可能存在空格、换行符等隐形字符,或者大小写不匹配(比如实际是"spain"或"Spain "):

  • 在代码中添加调试日志,打印值的原始内容和长度:
    System.debug('Country Value: [' + sl_fld_core_country__c + '], Length: ' + sl_fld_core_country__c.length());
    
  • 对比选择列表配置中的值,确保完全一致无额外字符。

4. 验证全局值集的配置状态

如果该选择列表使用全局值集,检查值集本身是否有变更:

  • 检查路径:设置 → 对象管理器 → 字段与关系 → 全局值集 → 找到对应值集,确认"Spain"处于活跃状态且API值正确。

5. 确认代码中的字段API名拼写

核对代码中赋值的字段是否是Direccion_entrega__CountryCode__s,避免误写为类似Direccion_entrega__Country__c的其他字段:

  • 示例代码核对:
    Pedido__c newPedido = new Pedido__c();
    newPedido.Direccion_entrega__CountryCode__s = address.sl_fld_core_country__c; // 确认字段名拼写完全匹配
    

6. 检查代码运行上下文的用户权限

手动UI操作的用户权限和代码运行的上下文用户(比如Apex类运行用户、触发器上下文用户)可能不同:

  • 检查该用户的Profile:设置 → 用户 → 找到对应用户 → 查看Profile → 字段级安全 → Pedido__c → 确认Direccion_entrega__CountryCode__s字段可编辑,且该Profile下的选择列表可用值包含"Spain"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:54:55