【问题标题】:opportunitycontactrole in salesforce triggers销售人员触发器中的机会联系人角色
【发布时间】:2013-07-08 14:51:41
【问题描述】:
我正在使用 apex 触发器,但在选择“联系人”时不断出错
我已经尝试了很多这种代码的不同配置,但我就是无法让它工作。
forceide 说没有在机会contactrole 上的联系
我没主意了。
到目前为止,这是我的代码:
在机会上触发 add_primary_advisor(插入后,更新后){
列出初选=new List();
for(Opportunity o:
[Select Contact
From OpportunityContactRole
Where OpportunityContactRole='Staff' and isPrimary='True']) {
primaries.add(Contact);
}
return primaries;
}
【问题讨论】:
标签:
triggers
salesforce
apex-code
【解决方案1】:
联系人不是 OpportunityContactRole 上的有效字段
此对象仅将联系人的引用存储为 ContactId。
如果您想从 OpportunityContactRole 访问联系人的字段,您可以通过交叉引用来访问其字段,如下所示。
List<Contact> primaries = new List<Contact>();
for(Opportunity o:
[Select Contact.FirstName, Contact.LastName, Contact.Email
From OpportunityContactRole
Where OpportunityContactRole='Staff' and isPrimary='True']) {
primaries.add(new Contact(FirstName=o.Contact.FristName,
LastName = o.Contact.LastName, Email =o.Contact.Email));
}
【解决方案2】:
由于您没有提供确切的错误,我将假设错误是因为您试图将一个不存在的变量“Contact”添加到您的“primaries”列表中。您可能想要添加的是“o.Contact”。
【解决方案3】:
转到 OpportunityContactRole,并检查 Contact 是否存在。可能是 Contact__C 更有可能。
问题肯定出在 SOQL 查询上。