无法通过Salesforce REST API/SOQL获取自定义对象Picklist值
解决自定义Event对象Picklist值无法通过API获取的问题
核心排查点:对象API名称正确性
Salesforce中标准Event对象已存在,自定义对象不能使用相同名称,因此你的自定义对象API名称应为Event__c(带__c后缀),这是最常见的错误点。以下是修正后的具体解决方案:
方法1:修正SOQL查询PicklistValueInfo
如果自定义对象是Event__c,字段为Country__c,使用以下SOQL:
SELECT Label, Value FROM PicklistValueInfo WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'Event__c' AND EntityParticle.QualifiedApiName = 'Country__c' AND IsActive = true
如果是标准Event对象的自定义字段,则将Event__c替换为Event即可。
方法2:调用正确的REST API描述接口
- 自定义对象
Event__c的描述接口:https://{domainurl}.my.salesforce.com/services/data/v44.0/sobjects/Event__c/describe - 标准Event对象的描述接口:
https://{domainurl}.my.salesforce.com/services/data/v44.0/sobjects/Event/describe
返回结果的fields数组中找到Country__c字段,其picklistValues属性包含所有激活的选项值。
额外排查项
- 字段权限:确认API所用用户的Profile/Permission Set拥有
Country__c字段的Read权限,即使管理员无全局拦截,也需检查具体用户权限。 - 字段状态:在Salesforce Setup中检查
Country__c字段是否处于激活状态,未禁用。 - API版本升级:v44.0版本较旧,尝试升级到v52.0+版本,可能修复元数据查询的兼容性问题。
- 元数据访问权限:确保用户拥有
View All Data权限,或具备访问该对象元数据的对应权限(PicklistValueInfo属于元数据对象,需特定权限查询)。
内容的提问来源于stack exchange,提问作者jumpingbunny
相关产品推荐
相关产品推荐

