2016-06-19 33 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