Triggers OpportunityContactRole数据访问
我想从opportunitycontactrole中找到一个人的名字。。。这是可能的还是完全偏离了基准?这是我已经拥有的代码。我意识到从contactRole获取contactID并没有返回姓名。。。我需要什么来取名呢Triggers OpportunityContactRole数据访问,triggers,salesforce,apex-code,Triggers,Salesforce,Apex Code,我想从opportunitycontactrole中找到一个人的名字。。。这是可能的还是完全偏离了基准?这是我已经拥有的代码。我意识到从contactRole获取contactID并没有返回姓名。。。我需要什么来取名呢 trigger add_primary_advisor on Opportunity(before update) { for(Opportunity o: Trigger.new){ if (!Trigger.oldMap.get(o.id).IsClosed)
trigger add_primary_advisor on Opportunity(before update) {
for(Opportunity o: Trigger.new){
if (!Trigger.oldMap.get(o.id).IsClosed) {
OpportunityContactRole contactRole =
[select ContactID from OpportunityContactRole where IsPrimary = true and OpportunityId = :o.id];
if (contactRole != null) {
o.Primary_Advisor__c=contactRole.contactID;
}
}
}
}
//如果Contact.Name不起作用,请尝试获取Contact.FirstName、Contact.LastName
列表名称=新列表();
对于(OpportunityContactRole contactRole)=
[从OpportunityContactRole中选择Contact.Name,其中IsPrimary=true,OpportunityId=:o.id]){
name.add(contactRole.Contact.name)
}
当我尝试将该查询的结果分配给字符串列表时,我得到一个错误,表示它正在返回OpportunityContactRolesSF查询结果返回类型为Sobject的列表,因此您将无法执行此操作。我已经编辑了上面的代码以满足您的需要
//If Contact.Name doesn't works try fetching Contact.FirstName, Contact.LastName
List<String> names = new List<String>();
for(OpportunityContactRole contactRole =
[select Contact.Name from OpportunityContactRole where IsPrimary = true and OpportunityId = :o.id]){
names.add(contactRole .Contact.name)
}