我正在尝试从所有“结算”联系人角色ID返回字段,这可能是一个商机记录。
我希望在我的机会触发器中找到一张地图,其中包含机会ID和相关联系人角色ID列表(即地图>)
我可以从循环trigger.new创建映射键,但似乎无法找到从我的SOQL查询中插入联系人角色ID列表的方法。
List<OpportunityContactRole> contactRoleList
= new List<OpportunityContactRole>([Select Id
From OpportunityContactRole
Where Role = 'Billing'
And OpportunityId in :listOfTriggerOppIds
]);
如果需要,我可以将其余的代码放入,但是因为它实际上不起作用,我认为它可能会混淆。
答案 0 :(得分: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);
}