Обработка ошибок в Mule Salesforce Batch

Я пытаюсь загрузить набор учетных записей в Salesforce из файла CSV. Я настроил обычный Datamapper, Upsert SFDC Step с Batch Commit и Batch Step, который обрабатывает только сбои (в данный момент регистрируется). Мой OnComplete имеет простой Logger. Я специально создал CSV с плохими данными. У меня есть внешний идентификатор в CSV.

Мое требование - обрабатывать сбойные записи по-разному в зависимости от состояния сбоя. Если это не удалось из-за неверных данных, я хотел бы прекратить обработку записи. Если это не удалось из-за того, что Родительский ключ не найден, я хотел бы повторить попытку. Мой пакет Шаг к обработке Только ошибки, не знаю, почему это не удалось. Так или иначе, я хотел бы передать «Почему это не удалось» моему шагу обработки ошибок.

Я уверен, что это простой шаблон, но я не могу понять, как соотнести :(

Ответы на вопрос(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, так что поток не будет остановлен, и если сбой произойдет в любой записи, он передаст его потоку «только сбой».

  <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>
 Jeet20 июн. 2016 г., 19:54
Именно то, что я хотел. Спасибо!
 star20 июн. 2016 г., 23:10
Большой!!. Пожалуйста, примите ответ, если это работает для вас.

Ваш ответ на вопрос