Триггер лидерства перед вставкой не возвращает лидерство. Идентификатор - PullRequest
3 голосов
/ 29 февраля 2012

У меня есть простой триггер, который извлекает данные из ведущего объекта и помещает их в пользовательский объект «Финансы» при создании или обновлении потенциального клиента.По какой-то причине Trigger.new [i] .Id возвращает NULL в триггере, который срабатывает перед вставкой.

Я схожу с ума, потому что не вижу никакой причины, по которой идентификатор будет равен 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;

    }

}

Заранее благодарю за любую помощь!

Джош

1 Ответ

9 голосов
/ 29 февраля 2012

По какой-то причине Trigger.new [i] .Id возвращает NULL в триггере, который срабатывает перед вставкой.

SFDC-записи не имеют идентификаторов до их вставки,Процесс вставки создает идентификатор.Вы, вероятно, хотите использовать после вставки.

...