0
我剛收到開發商腳本異常電子郵件觸發我已經在生產環境中得到:Apex腳本中未處理的異常觸發的Salesforce
Apex script unhandled trigger exception by user/organization: 00590000002GfMD/00D90000000cIze
SetContactDonorCampaign: execution of BeforeInsert
caused by: System.DmlException: Update failed. First exception on row 0; first error:
MISSING_ARGUMENT, Id not specified in an update call: []
Trigger.SetContactDonorCampaign: line 25, column 1
誤差不給我任何標識備案它失敗了,這有點煩人。觸發器本身只是識別在創建Payment_Information__c記錄時是否填充了查找聯繫人__c,並且在該聯繫人上設置多選擇選擇列表以包括「捐助者」,如果它尚未。
trigger SetContactDonorCampaign on Payment_Information__c (before insert,before update) {
for(Payment_Information__c donation : Trigger.new)
{
Contact reg = new Contact();
if(donation.Contact__c != NULL)
{
reg = [SELECT id, Campaign__c FROM Contact WHERE Id = :donation.Contact__c];
String regCampaign = '';
if (reg.Campaign__c != NULL)
{
if (!reg.Campaign__c.contains('Donor'))
{
regCampaign = reg.Campaign__c + ';Donor';
} else {
return;
}
} else {
regCampaign = 'Donor';
}
reg.Campaign__c = regCampaign;
}
if (reg != NULL)
{
update reg;
}
}
}
沒有特定的記錄來查找(系統甚至沒有與修改日期匹配的付款信息記錄這個錯誤),對什麼是失敗在這裏有什麼建議?
您在插入前調用此,在未提交之前插入實際插入,所以它可能有可能沒有接觸對象ID字段。並且您的聯繫人對象在任何情況下都不爲空,因爲您已添加「Contact reg = new Contact();」在你的代碼中。 – 2014-09-26 07:11:45