を返すメソッドがありますMap<Id, List<Id>>
メソッドは次のとおりです。
private Map<Id, List<Id>> getDbrToAccountMap(Set<Id> dbrIds) {
Map<Id, List<Id>> dbrAccountMap = new Map<Id, List<Id>>();
List<Id> accountIds = new List<Id>();
for(DBR_Group_Member__c member : [select Id, Contact__c, Contact__r.AccountId, DBR__c from DBR_Group_Member__c where DBR__c in: dbrIds]) {
if(accountIds.isEmpty()) {
accountIds = new List<Id>();
dbrAccountMap.put(member.DBR__c, accountIds);
}
accountIds.add(member.Contact__r.AccountId);
}
return dbrAccountMap;
}
一意の DBR_ c と Contact _cの一意のアカウントの accountIds のリストに追加したいだけです。
たとえば、次の DBR 番号があるとします。
3333 で、連絡先は Acme アカウントの John Smith です (リストに追加)
次に持っている
3333 で、連絡先は Acme アカウントの Jane Smith です (リストに追加しないでください)
次に持っている
3333 で、連絡先は Big Company アカウントの Bob Smith です (リストに追加)
次に持っている
3333 で、連絡先は Big Company アカウントの Doug Smith です (リストに追加しないでください)。
アカウントへの DBR は別個のものである必要があります。
私の方法では、accountIds を返していますが、DBR に基づいて区別されていません。DBR 番号が異なる場合、リスト内の重複する accountId を削除したくないため、注意が必要です。それはリスト内の有効な要素です。
どんな助けでも大歓迎です。
ありがとう。