Mule Salesforce批处理中的错误处理



我正在尝试将一组帐户从CSV文件加载到Salesforce中。我已经配置了使用批处理提交的常用datamapper,UPSERT SFDC步骤,以及仅处理失败的批次步骤(目前为logs)。我的Complete有一个简单的记录仪。我故意创建了使用不良数据的CSV。我在CSV中有一个外部ID。

我的要求是根据故障状态以不同的方式处理失败的记录。如果由于数据不良而失败,我想停止处理记录。如果找不到父键,我想重试。我的批次步骤仅处理错误,不知道为什么失败。不知何故,我想将"为什么失败"传递给我的失败处理。

我确定这是一个简单的模式,但是无法弄清楚如何关联:(

<batch:step name="Handle Failure" accept-policy="ONLY_FAILURES"/>中,您可以使用#[getStepException()] MEL来获取异常地图。later比您可以根据要处理逻辑的异常来使用选择组件。请参阅:http://blogs.mulesoft.com/dev/mule-dev/handle-errors-erors-batch-job/

确保使用<batch:job name="BatchFlow" max-failed-records="-1">,Max失败记录设置为-1,以免停止流程,如果在任何记录中发生故障,则将其传递到"仅失败"流。

  <batch:job name="BatchFlow" max-failed-records="-1">
    <batch:process-records>
        <batch:step name="Batch_Step">
        <!-- Success flow... -->
        </batch:step>
        <batch:step name="Handle Failure" accept-policy="ONLY_FAILURES">
            <logger message="Details:#[getStepException()]" level="INFO" doc:name="Logger"/>
           <!--  other logic  -->
        </batch:step>
    </batch:process-records>
</batch:job>

最新更新