我是Salesforce Development的新手,我已经在一个可以工作的沙盒Org中测试了与此查询类似的查询,但是,当尝试更新实时Org中的记录时,我遇到了一些问题。
问题和内容如下:
我正在尝试通过Apex DML更新某些作业记录的“记录类型”字段。我已经打开开发者控制台并运行查询:
rewrite /origin {
r (.*)
to /destination{1}
}
rewrite {
if {path} not_starts_with /origin
to /{path} /{path}/
}
这很好,它将向我显示前5个未分配记录类型的作业记录,这就是我要更新的记录。
问题是当我打开“执行匿名”窗口并输入以下代码时:
rewrite {
r ^/origin/(.*)
to /destination{1}
}
rewrite {
if {path} not_starts_with /origin
to /{path} /{path}/
}
我一直收到以下错误:
行:3,列:11变量不存在:RecordTypeId
除非我错过了非常明显的事情,否则我无法弄清为什么会这样。因为它可以很好地识别查询中的变量,并且沙盒中的类似查询(我也更新了RecordTypeId)可以正常工作。
谢谢
YH
答案 0 :(得分:3)
这里的问题是,您无法分配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;
希望,这将起作用。