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 に答える