2015-08-11 2 views
0

Im создаю работу, которая вызывает две веб-службы. Я должен управлять случаем ошибки.Talend - Перегруппируйте два пути только одним

Прецедент:

  1. Пользователь отправить его информацию (user1, user2) (tRestRequest)
  2. Работа называют 1-й WebService и получить информацию (tRestClient)
  3. Работа называют 2-й WebService и получить информацию (tRestClient)
  4. работы сливаться информацией и построить ответ (tXMLMap)
  5. работы реагировать с информацией (tRestResponse)

Моя проблема: tRestClient имеет два выхода: OK и ERROR. Как объединить этот путь, чтобы продолжить работу?

Прилагаю экран с синей стрелкой, идеальной ситуацией (но Talend этого не принимает). Если есть проблемы с моим первым веб-сервисом, я должен продолжить работу.

Я попытался удалить вывод ошибки, но если исключение выбрано в tRestClient, сбой задания.

У кого-то есть идея? Спасибо за поддержку!

Джон

Idyllic situation

ответ

0

У меня была проблема в последнее время, когда мне нужно, чтобы запустить один из целого ряда задач, а затем, в зависимости от задачи я бежать, я хотел сделать то же обработку на выходном потоке. Я обнаружил, что вы можете запускать компонент из нескольких мест с помощью триггера Component OK. Поэтому я вставил tSetGlobalVar в конце каждого потока, который должен был быть объединен вместе, а затем использовал триггер Component OK из всех них, чтобы вызвать tFixedFlowInput, который восстановил поток из глобальных переменных, которые я создал, и продолжил мою обработку с там. Он отлично работает для меня. Вероятно, вы можете использовать tFlowToIterate, если хотите, но вам нужно снять флажок «Использовать значение по умолчанию (ключ, значение) в глобальной переменной», чтобы вы могли указывать одинаковые имена глобальных переменных во всех них.

+0

Да, я использовал такой хак, с tSetGlobalVar на каждом пути и событие «если» в начале моей работы. Но я нашел лучшее решение: используя subJobs и push данные с bufferOutput. Спасибо за ваш ответ! –

Смежные вопросы