Я пишу подпружиненную партию, в которой я должен выполнить некоторую обработку ошибок. Я знаю, что у пружинного пакета есть свой способ обработки ошибок и перезапусков.
Однако, когда пакет завершается сбоем и перезапускается снова, я хочу передать свои собственные значения, условия и параметры (для перезапуска), которые необходимо затем перед запуском / выполнением первого шага.
Итак, возможно ли написать такой пользовательский перезапуск в весеннем пакете?
ОБНОВЛЕНИЕ1: (Предоставляя лучшее объяснение для вышеуказанного вопроса.)
Допустим, что вход для моего читателя на шаге 1 имеет следующий формат:
Таблица со следующими столбцами:
CompanyName1 -> VehicleId1
CN1 -> VID2
CN1 -> VID3
.
.
CN1 -> VID30
CN2 -> VID1
CN2 -> VID2
.
.
CNn -> VIDn
Читатель читает эту таблицу строка за строкой для Размер блока 1 (поэтому в этом случае полученная строка будет иметь вид CN -> VID) обрабатывает его и записывает в объект File. Этот процесс продолжается до тех пор, пока все данные типа CN1 не будут записаны в объект File. Когда считыватель отправляет строку с именем компании типа CN2, объект File, созданный ранее (для имени компании типа CN1), будет храниться в удаленном местоположении. Затем процесс создания файлового объекта будет продолжаться для CN2, пока мы не встретим CN3, и в этом случае файловый объект CN2 будет отправлен на хранение в удаленное местоположение, и процесс будет продолжен.
Теперь, как только вы поймете это, вот ловушка.
Допустим, данные в настоящее время записываются автором для названия компании 2 (CN2), а идентификатор транспортного средства VID20 (CN2 -> VID20) в объекте File. Затем по какой-то причине нам пришлось прекратить работу / работа провалилась. В этом случае будет сохранен экземпляр CN2 -> VID20. Итак, в следующий раз, когда задание будет запущено, оно начнется с CN2-> VID20
. Как вы уже догадались, все 19 записей до CN2-> VID20, которые были записаны в объекте файла, были удалены навсегда, когда Объект файла был уничтожен, и эти записи никогда не отправлялись через Файл в удаленное местоположение.
Итак, мой вопрос здесь такой:
Есть ли способ написать свой собственный перезапуск для пакета? где я мог бы сказать, что задание должно начинаться с CN2-> VID1 вместо CN2-> VID20?
Если вы могли бы подумать о любом другом способе обработки этого сценария, тогда такие предложения также приветствуются.