2017-01-16 4 views
-2

У меня есть работа с талантом, которая берет входные данные из файла csv. Файл CSV имеет имена дочерних заданий и дату начала. Сейчас это как работа строится У меня есть tFileInputDelimited, который принимает входные данные из файла, и это соединяется с tFlowToIterate, который имеет пары ключ-значениеЗапуск работ Talend по дате

Пример:

  • c1, с2 и с3, которые являются C1 -> Job1

  • С2 -> J1

  • С3 -> 1/16/2017

J1 - это имя дочернего задания, а C3 - дата. В trunjob я использовал «Использовать динамическое задание», а контекстное задание - «globalMap.get (« c2 »), которое выполнит все дочерние задания.

Теперь мне нужно выполнить те дочерние задания, значение c3 является сегодня.

+1

В чем проблема? что вы пытались, что не сработало? – Corentin

+0

Сейчас у меня есть родительское задание, выполняющее дочерние задания. В контекстном задании trunjob у меня есть код globalMap.get («c2»), где c2 имеет имена заданий. Аналогично, c3 имеет дату начала, связанную с каждым заданием, и только если дата является сегодняшней датой, то должно выполняться вспомогательное задание. – Harshi

ответ

0

Если вы вопрос является продолжением этой темы Running Talend child jobs through a parent job, то вы можете следовать ниже шагов,

ниже моя дата ввода

ChildJob1, 1/16/2017 
ChildJob2, 1/17/2017 
ChildJob3, 1/17/2017 

Я модифицировал ту же работу из предыдущего ответа с добавлением п tjava компонент, как показано ниже,

enter image description here

Ниже код, который существует внутри tjava компонента

System.out.println("|-----------------Date from Input file is "+row5.Date.toString()+"------------|"); 
System.out.println("|-----------------Job name from Input file is "+context.JobName+"---------------------------|"); 

String input = TalendDate.getDate("DD/MM/yyyy"); 
SimpleDateFormat inputFormatter = new SimpleDateFormat("DD/MM/yyyy"); 
Date date = inputFormatter.parse(input); // Getting Today's date in DD/MM/YYYY format 

context.IsTodayJob = TalendDate.compareDate(date,row5.Date) == 0 ? true : false; 

В tjava компоненте, я устанавливаю переменной IsTodayJob значение контекста, сравнивая сегодняшнюю дату и дату значение из входного файла.

И я соединил tjava компонент с tRunJob компонента через run if вариант с ниже условия

enter image description here

Это дало мне ниже результата.

enter image description here

Надеется, что это поможет вам.