CSV ファイルをアップロードしようとしている / インポート ウィザードを使用して大量のレコードを挿入しようとしています。つまり、重複が見つかった場合に備えて、最新の記録を保持したいと思います。重複レコードは、名、姓、役職の組み合わせです
たとえば、CSV ファイルが次のようになっているとします。
ジェームズ、ウィスラー、34歳、ニューヨーク、既婚
ジェームズ、ウィスラー、34歳、ロンドン、既婚
....
....
ジェームズ、ウィスラー、34歳、ニューヨーク、離婚
これは私の組織にのみ保持する必要があります: James,Wistler,34,New York,Divorced
更新/挿入の前にトリガーを書き込もうとしましたが、これまでのところ成功していません。トリガーコードは次のとおりです: (コードはまだ完成していません (Firstname でのファイリングのみ)、CSV で見つかった重複を削除する際に問題が発生しています)任意のヒント。読んでくれてありがとう!
trigger CheckDuplicateInsert on Customer__c(before insert,before update){
Map <String, Customer__c> customerFirstName = new Map<String,Customer__c>();
list <Customer__c> CustomerList = Trigger.new;
for (Customer__c newCustomer : CustomerList)
{
if ((newCustomer.First_Name__c != null) && System.Trigger.isInsert )
{
if (customerFirstName.containsKey(newCustomer.First_Name__c) )
//remove the duplicate from the map
customerFirstName.remove(newCustomer.First_Name__c);
//end of the if clause
// add this stage we dont have any duplicate, so lets add a new customer
customerFirstName.put(newCustomer.First_Name__c , newCustomer);
}
else if ((System.Trigger.oldMap.get(newCustomer.id)!= null)&&newCustomer.First_Name__c !=System.Trigger.oldMap.get(newCustomer.id).First_Name__c )
{//field is being updated, lets mark it with UPDATED for tracking
newCustomer.First_Name__c=newCustomer.First_Name__c+'UPDATED';
customerFirstName.put(newCustomer.First_Name__c , newCustomer);
}
}
for (Customer__c customer : [SELECT First_Name__c FROM Customer__c WHERE First_Name__c IN :customerFirstName.KeySet()])
{
if (customer.First_Name__c!=null)
{
Customer__c newCustomer=customerFirstName.get(customer.First_Name__c);
newCustomer.First_Name__c=Customer.First_Name__c+'EXIST_DB';
}
}
}