salesforce - Apex DML 无法识别 SOQL 所做的变量
问题描述
我是 Salesforce 开发的新手,我已经在沙盒组织中测试了与此类似的查询,该查询有效,但是在尝试更新实时组织中的记录时,我遇到了一些问题。
问题和上下文如下:
我正在尝试通过 Apex DML 更新某些作业记录的“记录类型”字段。我打开了开发者控制台并运行了一个查询:
SELECT Name, GW_Volunteers__Campaign__c, RecordtypeId FROM GW_Volunteers__Volunteer_Job__c WHERE GW_Volunteers__Campaign__c = '7010O000001P2XIQA0' and RecordTypeId = null LIMIT 5
这工作正常,将向我显示前 5 个没有分配记录类型的工作记录,这是我想要更新的。
问题是当我打开“执行匿名”窗口并输入此代码时:
GW_Volunteers__Volunteer_Job__c [] bjobs = [
SELECT Name, GW_Volunteers__Campaign__c, RecordTypeId FROM GW_Volunteers__Volunteer_Job__c WHERE GW_Volunteers__Campaign__c = '7010O000001P2XIQA0' and RecordTypeId = null LIMIT 5];
bjobs.RecordTypeId='0120O000000LAY6QAO';
update bjobs;
我不断收到以下错误:
行:3,列:11 变量不存在:RecordTypeId
除非我错过了一些非常明显的东西,否则我无法弄清楚为什么会发生这种情况。因为它可以很好地识别查询中的变量,并且沙箱中的类似查询(我也更新了 RecordTypeId)有效。
谢谢你,
YH
解决方案
这里的问题是,你不能分配bjobs.RecordTypeId='0120O000000LAY6QAO';
. 你知道,bjobs
是一个数组GW_Volunteers__Volunteer_Job__c
。
所以,你需要做的是,
GW_Volunteers__Volunteer_Job__c [] bjobs = [
SELECT Name, GW_Volunteers__Campaign__c, RecordTypeId FROM GW_Volunteers__Volunteer_Job__c WHERE GW_Volunteers__Campaign__c = '7010O000001P2XIQA0' and RecordTypeId = null LIMIT 5];
for(GW_Volunteers__Volunteer_Job__c job : bjobs)
{
job.RecordTypeId='0120O000000LAY6QAO';
}
update bjobs;
希望,这会奏效。
推荐阅读
- python - 使用列表列表迭代字典
- python-3.x - 在 python 中发出异步 Post 请求
- java - 如何在线程安全模式下以特定数字在 Redis 中启动计数器?
- windows - Xero OAuth 2 令牌
- android - 有时在使用 parceble 创建片段时会发生错误
- r - 如何处理jsonlite中的缺失值?
- python - 如何左外连接使用 SQLAlchemy 关联对象
- android - 如何禁用 FilledTextField 组件?
- json - DeserializerContext.readValue() 抛出输入结束异常
- spring - JPA 规范首先按特定值排序