【问题标题】:Lead Trigger before insert not returning lead.Id插入前的潜在客户触发器不返回潜在客户.Id
【发布时间】:2012-02-29 07:14:50
【问题描述】:

我有一个简单的触发器,它从潜在客户对象中提取数据,并在创建或更新潜在客户时将其放入自定义“财务”对象中。出于某种原因,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;

    }

}

提前感谢您提供的任何帮助!

乔什

【问题讨论】:

    标签: salesforce apex-code


    【解决方案1】:

    由于某种原因,Trigger.new[i].Id 在插入之前触发的触发器中返回 NULL。

    SFDC 记录在插入之前没有 ID。插入过程会创建 ID。您可能想在插入后使用。

    【讨论】:

    • 我觉得自己像个小丑。这正是问题所在。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    相关资源
    最近更新 更多