我在尝试发送包含我在创建的批次结束时出现的批次错误的电子邮件时遇到问题。问题是我的 outputList 列表总是由于某种原因被清除,即使它是一个静态列表。当我发送包含每个批次错误的电子邮件时,电子邮件会为使用 outputlist 创建的每个批次发送错误,但仍未清除,但是当我尝试在所有批次结束时发送电子邮件时, outputList 会被清除。我没有在我的 CreationBatch 类中的任何地方清除 outputList,我只是不断地将数据库中的错误与其他信息一起添加。有没有办法可以做到这一点(在所有批次结束时发送一封电子邮件,其中包含每批次的所有错误)?
// Class BusinessRules
//method to create cases has the following
CreationBatch cBatch = new CreationBatch();
cBatch.caseList = cList; //list of cases
ID batchprocessid = Database.executeBatch(cBatch,5);
CreationBatch 类具有以下内容
static List<String> outputList = new List<String>();
// The execute method
global void execute(Database.BatchableContext BC, List<Case> scope){
//creates cases and insert them to database then runs this
finally{
GetErrorsFromBatch();
//commented this because I want to send one email at the end of all batches
// when this one was here I used to get multiple emails with the error msgs
//sendBatchEmail();
}
}
// adds error to output list
global void GetErrorsFromBatch(){
....
//for each db error
outputList.add(error);
....
}
global void finish(Database.BatchableContext BC){
// sends the email
// when I put this here I get one email at the end but the outputList is empty
sendBatchEmail();
}
我还尝试将 outputList(public static) 移动到 BusinessRules 类并添加每个批次的值,但奇怪的是,当我想发送电子邮件时它被清除了。
编辑
我试过用这个global class CaseCreation implements Database.Batchable<sObject>, Database.Stateful
但现在我得到这个错误FATAL_ERROR|Internal Salesforce.com Error