3

注文挿入トリガーで、注文情報の連絡先を更新する必要があります。連絡先リストに重複したレコードがあることがわかっています。だから私は Contact[] contactToUpdate = new List(new Set(contactList)); を使用します。重複を削除します。

しかし、私はまだエラーメッセージを受け取ります: リストに重複しています。

何か案が??

ありがとう

4

1 に答える 1

6

セットに一意の要素が含まれていることは正しいですが、問題は連絡先のインスタンスを扱っていることです.2つのインスタンスがDB内の同じ連絡先を参照しているという理由だけで、それらはメモリ内の異なるオブジェクトインスタンスであり、したがって一意です.結果として、同じ ID を持つ同じ連絡先を表すセット内のエントリが必要になる可能性があります。

これを回避する最も簡単な方法は、id のマップを使用して連絡することです。

map<Id, Contact> contactMap = new map<id, Contact>();

処理する注文ごとに、連絡先ルックアップをマップへのキーとして使用して、更新する連絡先に到達できます。処理の最後に、次のように呼び出すだけで連絡先を更新できます。

update mapContacts.values(); 
于 2012-05-29T03:34:09.023 に答える