Уже ясно, что все шаги из преобразования выполняются параллельно, и нет никакого способа изменить это поведение в Pentaho.PDI/Kettle: избегать выполнения создания или сопоставления файлов (под-преобразование)
Учитывая, что у нас есть сценарий с задачей переключения, который проверяет конкретное поле (чтение из имени файла) и решает, какая задача (преобразование-под-преобразование) будет обрабатывать этот файл. Это часть общей логики, которая, до и после каждой задачи отображения, делает некоторые задачи шаблонных как обновление БД записей, отправка электронной почты и т.д.
Проблема: если у нас нет никаких файлов «ACCC014», это преобразование не может быть выполнено. Я понимаю, что это невозможно, так как все задачи выполняются параллельно, поэтому возникает вторая проблема: внутри НЕКОТОРЫХ сопоставлений создаются файлы XML. И даже когда Pentaho выполняет эту задачу с пустыми данными, мы не можем найти способ избежать создания выходного файла XML.
Мы думали о том, чтобы переместить эту логику коммутатора на задание, так как в теории это серийный номер, но не нашел условного шага, который бы сделал это различие.
Мы также рассмотрели задачу метаданных инжекции, но мы не считаем, что это путь. Каждое суб-преобразование действительно выполняет разные задания. Некоторые из них обновляют некоторые таблицы, другие записывают файлы, другие переносят данные между различными базами данных. Все они получают некоторый файл в качестве входных данных и возвращают флаг send_email и строку сообщения. Ничего больше.
Есть ли способ сделать то, что мы желаем? Или нет возможности повторно использовать часть логики на основе входов/выходов по умолчанию?
Редактировать: добавить трансформацию ACCC014. Да, опция «Не создавать файл при запуске» отмечена.
Являются ли эти xml-файлы, созданные с помощью этапа XML Output? Еще в 5.2 на шаге XML Output на вкладке «Файл» на вкладке «Файл» был установлен параметр «Не создавать файл при запуске». вы проверили? – user4637357
Зачем вам нужно выполнить преобразование ACCC014, если для этого нет файла? Если у вас есть побочные эффекты, которые вы хотите, разделите их на другое преобразование. –
@ user4637357 Да, файл XML создается путем преобразования ACCC014, например. Я проверил «не создавайте файл при запуске», но проблема в том, что преобразование выполняется в любом случае, даже если нет записей, отправленных ему задачей switch. – jfneis