我在 Salesforce 中的客户对象上编写了一个触发器。当我使用 Dataloader 上传记录时,如果没有错误,此触发器将在所有记录上执行。但是,如果在更新/插入至少一条记录时出现错误,它会错过完整的批次。
有人可以对此给出一些指导吗?
请在下面找到触发器的两个版本(之前和之后):
版本一
trigger accountScorerTrigger on Account (after insert, after update) {
if(Trigger.isUpdate || Trigger.isInsert) {
if(Utility.isFutureUpdate){
List<Account> accList = new List<Account>();
// Iterate through all records
for (Account newAccount:Trigger.new) {
Account tempAcc = new Account(id = newAccount.id);
tempAcc.Account_Score_History__c = 'TESTING RECORDS 3';
accList.add(tempAcc);
}
Utility.isFutureUpdate = false;
if(accList.size()>0){
//update accList;
Database.DMLOptions dml = new Database.DMLOptions();
dml.optAllOrNone = false; // tried true also
database.update(accList,dml);
}
}
}
}
版本-2
trigger accountScorerTrigger on Account (before insert, before update) {
if(Trigger.isUpdate || Trigger.isInsert) {
//if(Utility.isFutureUpdate){
// Iterate through all records
for (Account newAccount:Trigger.new) {
newAccount.Account_Score_History__c = 'TESTING RECORDS 5';
}
//Utility.isFutureUpdate = false;
//}
}
}