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

System.SObjectException报错求助:未查询Asset.Product2对象

解决System.SObjectException: SObject行通过SOQL检索,但未查询请求的字段:Asset.Product2错误

错误原因

你的代码里直接访问了Asset.Product2这个关联SObject对象,但当前SOQL只查询了Product2Id或AssetId__r.Product2Id这类ID字段——Salesforce要求,若要访问关联对象本身(比如Asset.Product2.Name这种操作),必须在SOQL中明确查询该关联对象的引用,而非仅查询ID字段。

解决方案

根据你的查询场景调整SOQL:

  • 若直接查询Asset记录:
    在SOQL中加入Product2关联对象的引用(可指定具体需要的字段,避免查询所有字段影响性能),示例:
    SELECT Id, Product2Id, Product2.Name, Product2.Description FROM Asset WHERE ...
    
    若仅需关联对象本身(不指定具体字段),至少要写Product2:
    SELECT Id, Product2 FROM Asset WHERE ...
    
  • 若从自定义对象关联查询Asset:
    需要在查询中嵌套AssetId__r.Product2(或其下具体字段),示例:
    SELECT Id, AssetId__r.Id, AssetId__r.Product2.Name FROM YourCustomObject__c WHERE ...
    

注意事项

  • 若代码仅需Product2的ID,直接用Asset.Product2Id替代Asset.Product2.Id,此时仅查询Product2Id字段即可。
  • 不要用SELECT ... Product2.* ...这种写法,明确指定需要的字段更符合Salesforce最佳实践。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:45:35