1

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';
    }
}
}   
4

1 に答える 1