2016-06-19 27 views
0

我试图从CSV文件中将一组帐户加载到Salesforce中。我已经配置了通常的Datamapper,Upsert SFDC Step with Batch Commit和一个仅处理故障(现在为日志)的批处理步骤。我的OnComplete有一个简单的记录器。我有意创建CSV与坏数据。我在CSV中有一个外部ID。在Mule Salesforce批处理中的错误处理

我的要求是根据失败状态以不同的方式处理失败的记录。如果由于错误数据而失败,我想停止处理记录。如果由于未找到父键而失败,我想重试。我的批处理步骤只处理错误,不知道为什么失败。不知何故,我想通过“为什么它失败”我的故障处理bacth步骤。

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

回答

1

<batch:step name="Handle Failure" accept-policy="ONLY_FAILURES"/>你可以使用#[getStepException()] MEL获得异常Map.Later比你可以使用基于选择组件除了你要处理逻辑参考:http://blogs.mulesoft.com/dev/mule-dev/handle-errors-batch-job/

使用<batch:job name="BatchFlow" max-failed-records="-1">确保,最大失败记录集-1,使水流不会停止,如果故障在任何记录情况,将它传递给“唯一的失败'flow。

<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> 
+0

正是我想要的。谢谢! – Jeet

+0

太棒了!如果这对您有用,请接受答案。 – star