2012-02-28 10 views
3

リードオブジェクトからデータを取り出し、リードが作成または更新されたときにカスタム "Finance"オブジェクトに配置する簡単なトリガーがあります。なんらかの理由で、Trigger.new [i] .Idは挿入前に起動するトリガーにNULLを戻しています。リードがリードを返さない前のリードトリガー

私はIdがNULLになる理由何らかの理由を見ることができないので、私はおかしくなりそうだが...ここに私のコードです:

trigger FinanceNew on Lead (before insert) { 

Map<String,User> userList = new Map<String,User>{}; 

// Places each returned user into a map with their sfID as the key 
for(User tmp : [SELECT Id,Name,Email,Phone FROM User]){ 
    userList.put(tmp.Id,tmp); 
} 

for(integer i = 0; i<Trigger.new.size(); i++){ 

    string leadName = null; 

    if(Trigger.new[i].FirstName != ''){ 
     leadName = Trigger.new[i].FirstName + ' ' + Trigger.new[i].LastName; 
    }else{ 
     leadName = Trigger.new[i].LastName; 
    } 

    User ownerInfo = userList.get(Trigger.new[i].OwnerId); 

    ID leadId = Trigger.new[i].Id; // THIS IS RETURNING NULL!! 

    Finance__c financeRecord = new Finance__c(

     Name = leadName, 
     Lead__c = leadId, 
     Lead_Email__c = Trigger.new[i].Email, 
     Lead_Phone__c = Trigger.new[i].Phone, 
     Lead_Owner_Name__c = ownerInfo.Name, 
     Lead_Owner_Email__c = ownerInfo.Email, 
     Lead_Owner_Phone__c = ownerInfo.Phone 

    ); 

    insert financeRecord; 

    } 

} 

は、与えられた任意の助けを事前にありがとうございます!何らかの理由でジョシュ

答えて

9

、Trigger.new [i]は.IDは、挿入前に発射トリガーにNULL戻っています。

SFDCレコードにはIDが挿入されていません。挿入プロセスによってIDが作成されます。おそらく挿入後に使いたいと思うでしょう。

+0

私は絶対的な風船のように感じる。これはまさに問題でした。ありがとう! – VictorKilo

関連する問題