Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce 如何获取失败的批处理记录?_Salesforce_Apex Code - Fatal编程技术网

Salesforce 如何获取失败的批处理记录?

Salesforce 如何获取失败的批处理记录?,salesforce,apex-code,Salesforce,Apex Code,是否有办法获取失败批次中的记录?AsyncApexJob只给出了失败的次数-但实际上没有什么比这更多 我认为没有办法使用默认功能获得所有所需的详细信息。我通过创建一个批状态对象来解决这个问题,我可以在其中记录批中发生的错误。实际上,我将批处理执行代码包装在一个try/catch块中,并在catch中添加一个新的批处理状态记录,其中包含错误的详细信息 global void execute(Database.BatchableContext BC, List<sObject> scop

是否有办法获取失败批次中的记录?AsyncApexJob只给出了失败的次数-但实际上没有什么比这更多


我认为没有办法使用默认功能获得所有所需的详细信息。我通过创建一个批状态对象来解决这个问题,我可以在其中记录批中发生的错误。实际上,我将批处理执行代码包装在一个try/catch块中,并在catch中添加一个新的批处理状态记录,其中包含错误的详细信息

global void execute(Database.BatchableContext BC, List<sObject> scope) { 

    List<Batch_Status__c> BatchStatuses = new List<Batch_Status__c>();

    try {
        // ... batch execute code ...
    }
    catch(Exception e) {
        // exception logging
        Batch_Status__c BatchStatus = new Batch_Status__c();

        // ... add exception detail to BatchStatus ...
        BatchStatuses.add(BatchStatus);
    }

    insert BatchStatuses;
}
global void execute(Database.BatchableContext BC,List scope){
列表批次状态=新列表();
试一试{
//…批处理执行代码。。。
}
捕获(例外e){
//异常日志记录
Batch_Status_uuC BatchStatus=新批次_Status_uuC();
//…将异常详细信息添加到BatchStatus。。。
BatchStatus.add(BatchStatus);
}
插入批处理状态;
}

我很喜欢这个,马特,再次感谢你的帮助!旁注:只要
execute()
调用有一个可捕获的异常,上述方法就可以正常工作。限制例外情况只能在
finish()中确定