2013-07-10 164 views
0

我试图从一个opportunitycontactrole得到一个人的名字......是可能的或完全脱离基地?这是我已有的代码。我知道从contactRole获取联系人ID并没有返回一个名字......我需要在那里得到一个名字,而不是我的名字?OpportunityContact角色数据访问

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; 
     } 
    } 
    }  
} 

回答

0
//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) 
    } 
+0

当我尝试分配该查询的结果字符串列表,我得到一个错误,指出它的返回OpportunityContactRoles – kyle

+0

SF的查询结果类型的sObject返回列表,所以你不会是能够做到那。我已经编辑了我的代码以回答您的需求 – prasun