1

我正在尝试从机会记录可能具有的所有“计费”联系人角色 ID 中返回字段。

我希望在我的机会触发器中得到一个地图,该地图具有机会 ID 和关联的联系人角色 ID 列表(即 Map>)

我可以从循环 trigger.new 创建映射键,但似乎找不到从我的 SOQL 查询中插入联系人角色 ID 列表的方法。

List<OpportunityContactRole> contactRoleList 
 = new List<OpportunityContactRole>([Select Id 
                                     From OpportunityContactRole 
                                     Where  Role = 'Billing' 
                                       And OpportunityId in :listOfTriggerOppIds
                                    ]);

如果需要,我可以将其余代码放入其中,但由于它实际上不起作用,我认为它可能会使事情变得混乱。

4

1 回答 1

0

不知道我是否理解你的问题,但你的意思是这个:?

Map<id,list<id>> mapOptyBillings = new Map<id,list<id>>(); //map of opportunityID, list<opportunityContactRole IDs

List<OpportunityContactRole> contactRoleList 
 = new List<OpportunityContactRole>([Select Id, OpportunityId
                                     From OpportunityContactRole 
                                     Where  Role = 'Billing' 
                                       And OpportunityId in :listOfTriggerOppIds
                                    ]);
//also query OpportunityId so that you can match

//iterate your result
for(OpportunityContactRole optyCR:contactRoleLis){ 
   //see if our map already has a list for the opportunity of this opportunityContactrole, 
   //if this is not the case, add it with a blank list
   if(! mapOptyBillings.containsKey(optyCR.OpportunityId)mapOptyBillings.put(optyCR.OpportunityId, new List<id>();
   mapOptyBillings.put(optyCR.OpportunityId,optyCR.id);
}
于 2013-10-25T13:02:56.030 回答