Apex DML won't recognise variable that SOQL does
我是 Salesforce 开发的新手,我在沙盒组织中测试了与此类似的查询,该查询有效,但是在尝试更新实时组织中的记录时,我遇到了一些问题。
问题和背景如下:
我正在尝试通过 Apex DML 更新某些作业记录的"记录类型"字段。我打开了开发者控制台并运行了一个查询:
1 | 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 个没有分配记录类型的工作记录,这是我要更新的。
问题是当我打开"执行匿名"窗口并输入以下代码时:
1 2 3 4 | 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; |
我不断收到以下错误:
Line: 3, Column: 11 Variable does not exist: RecordTypeId
除非我错过了一些非常明显的事情,否则我无法弄清楚为什么会发生这种情况。因为它可以很好地识别查询中的变量,并且沙箱中的类似查询(我也更新了 RecordTypeId)有效。
谢谢你,
YH
这里的问题是,你不能分配
的数组
所以,你需要做的是,
1 2 3 4 5 6 7 8 9 | 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; |
希望,这会奏效。