我正在尝试编写我的第一个 Apex 更新触发器,并且在尝试设置自定义查找字段的值时略有挣扎。
我有一个名为的对象Deployment__c
,它是与一个名为Service__c
(名称简化!)
该Service__c
字段在 Salesforce 中没有Owner
,因为它是主-详细信息关系中的子/详细信息。因此,我们创建了一个在此对象上调用的伪所有者字段,它是在 Salesforce 中Owner__c
查找对象的查找字段。User
触发器的目的是将 的值设置Service__c.Owner__c
为 的所有者用户的值Deployment__c
(如果Owner__c
尚未设置 on )Service__c
。
我的代码如下:
trigger AfterServiceUpdate on Service__c (before update) {
for (Service__c oldService : Trigger.new) {
if (oldService.Owner__c == null) {
User defaultUser = [Select Id FROM User WHERE User.Id = :oldService.Deployment__r.OwnerId];
oldService.Owner__c = defaultUser.Id;
}
}
}
但是,当我尝试保存此触发器时出现错误:
错误:编译错误:SObject ASE_Deployment__c 在第 5 行第 13 列的字段 Owner__c 无效
我已验证我的字段名称正确,但无法使其正常工作。欢迎任何指点!