长话短说,我需要更新标准联系人中的自定义字段,该字段在更新不同的、不相关的自定义对象后触发。我试图编写一个触发器,将字段值从我的自定义对象传递给联系人,但我不断收到各种错误 - 其中最近的一个让我感到难过。最终目标是Passing__c
从Passing_Field__c
.
我在线unexpected Token: "("
上遇到错误for(Contact C:
。从字面上看,它是如此简单,我无法弄清楚。
下面是我的代码。我已经简化了命名约定以尝试使其更具相关性。任何帮助表示赞赏。我对 Apex 和 Triggers 还很陌生,而且我已经在这里工作了几个小时,希望一些建议可以让我回到“本垒板”。
trigger ContactUpdater on Custom_Object_Name__c (after update) {
List<Contact> updatedContacts = new List<Contact>();
Set<Id> ObjectIds = new Set<Id>();
Set<String> ObjectCont = new Set<String>();
Set<Boolean> ObjectActive = new Set<Boolean>();
Set<String> ObjectPass = new Set<String>();
for(Custom_Object_Name__c p : trigger.new)
{
If(p.Active__c == true){
ObjectIds.add(p.Id);
ObjectCont.add(p.Contact__c);
ObjectActive.add(p.Active__c);
ObjectPass.add(p.Passing_Field__c);
}
try{ for(Contact c : [SELECT Id, Passing__c FROM Contact WHERE (AccountId IN (Select Account__c from Custom_Object_Name__c )) AND ObjectActive = true])
{
set(c.Passing__c = p.Passing_Field__c);
c.FieldToUpdate = c.Passing__c;
updatedContacts.add(c);
}
update updatedContacts;
}
catch(exception e){
throw e;
}
}
}
注意:Active__c 是一个复选框。Passing__c 和 Passing_Field__c 都是文本框。