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

Salesforce Developer Console匿名执行窗口访问子窗口Case报错问询

Salesforce Execute Anonymous 访问Case对象报错解决方案
  • 优先校验权限:确认当前登录账号拥有Case对象的读权限、对应访问字段的字段级安全权限,访问指定Case记录时还要确保记录共享规则对当前账号开放
  • 跨上下文访问临时记录的注意点:Execute Anonymous 中未执行insert操作的临时Case实例仅存储在当前执行上下文内存中,无法跨窗口、跨上下文直接访问。你需要先将记录持久化到数据库,再通过生成的记录Id在其他上下文查询:
    // 第一步:在原始Execute Anonymous窗口执行,生成持久化Case记录
    Case testCase = new Case(
        Subject = '测试工单',
        Status = 'New',
        Origin = 'Web'
    );
    insert testCase;
    System.debug('生成的Case记录Id:' + testCase.Id);
    
    复制输出的Id后,在子窗口执行查询逻辑:
    // 替换为上一步生成的Case记录Id
    Case fetchedCase = [SELECT Id, Subject, Status FROM Case WHERE Id = '替换为实际Id' LIMIT 1];
    System.debug('查询到的Case信息:' + fetchedCase);
    
  • 常见报错排查:
    • 若提示List has no rows for assignment to SObject:到Salesforce前台Case模块直接输入Id检索,确认记录真实存在,且当前账号有权限访问
    • 若提示sObject类型/字段不存在:检查代码中Case拼写、查询字段的API名称是否正确,注意区分大小写
  • 权限临时测试方案:如果怀疑是权限限制导致报错,可以用without sharing封装逻辑临时绕过共享规则测试,确认问题根因:
    without sharing class TempCaseQueryUtil {
        public static void queryCaseById(String recordId) {
            Case c = [SELECT Id, Subject, Origin FROM Case WHERE Id = :recordId LIMIT 1];
            System.debug(c);
        }
    }
    TempCaseQueryUtil.queryCaseById('替换为你的Case记录Id');
    

注意:without sharing仅用于本地测试排查,生产环境使用需严格评估数据安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:10