我正在尝试将一组帐户从 CSV 文件加载到 Salesforce 中。我已经配置了常用的 Datamapper、带有批提交的 Upsert SFDC 步骤和仅处理失败的批步骤(目前为日志)。我的 OnComplete 有一个简单的记录器。我故意创建了包含错误数据的 CSV。我在 CSV 中有一个外部 ID。
我的要求是根据失败状态对失败记录进行不同的处理。如果由于错误数据而失败,我想停止处理记录。如果由于找不到父密钥而失败,我想重试。我的批处理步骤仅出现错误,不知道为什么失败。不知何故,我想将“为什么失败”传递给我的失败处理步骤。
我确信这是一个简单的模式,但我无法弄清楚如何关联:(
In <batch:step name="Handle Failure" accept-policy="ONLY_FAILURES"/>
您可以使用#[getStepException()]
MEL来获取异常Map。之后你可以根据你想要处理的逻辑使用选择组件。参考:http://blogs.mulesoft.com/dev/mule-dev/handle-errors-batch-job/ http://blogs.mulesoft.com/dev/mule-dev/handle-errors-batch-job/
确保使用<batch:job name="BatchFlow" max-failed-records="-1">
,最大失败记录设置为-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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)