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

Salesforce使用Apex创建Account对象报DML requires SObject or SObject list type: account错误问询

错误诱因
  • 核心原因是标准SObject Account的类型被自定义内容覆盖了,Apex对类型大小写不敏感,只要存在和Account大小写变体同名的自定义内容,就会覆盖默认的系统SObject类型,这也刚好解释了其他对象操作正常的现象:其他对象没有同名冲突所以可被正常识别为SObject:
    • 当前代码上下文内存在名为Account/account的自定义类、成员变量、局部变量,你实例化的实际上是自定义类的对象而非SObject实例
    • 代码头部导入了非系统标准命名空间下的Account类,优先级高于系统默认SObject类型
排查步骤
  • 全局搜索当前Apex类内所有Account、account关键词,排查是否存在重名的自定义类、变量定义
  • 检查代码头部的import语句,确认是否引入了第三方/自定义命名空间下的Account类型
  • 在DML操作前加入调试语句验证类型:System.debug(Account.class.getTypeName());,如果输出结果不是Schema.Account即可确认类型被覆盖
修复方案
  • 最快修复方案:直接在Account前加Schema.前缀强制指定使用系统标准SObject类型,代码示例:
// 原错误写法,会调用被覆盖的自定义类型
Account newAcc = new Account(Name = '测试企业');
insert newAcc;

// 修正后写法,明确调用标准SObject
Schema.Account newAcc = new Schema.Account(Name = '测试企业');
insert newAcc;
  • 长期规范方案:修改和标准对象重名的自定义类、变量命名,比如将自定义Account类改为AccountDTO、AccountBiz等,避免后续再出现同类冲突
  • 如果是导入导致的冲突:删除非必要的import语句即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:15:02