我有一个talend作业,它接受来自csv文件的输入。 CSV文件具有子作业名称和开始日期。现在,这就是工作的构建方式 我有一个tFileInputDelimited,它接受来自文件的输入,并连接到tFlowToIterate,它具有键值对
示例:
c1,c2和c3是C1 - > Job1
C2 - > J1
C3 - > 1/16/2017
J1是子作业的名称,C3具有日期。 在trunjob中我使用了“使用动态作业”,而Context作业是“globalMap.get(”c2“),它将执行所有子作业。
现在我需要执行那些c3值为今天的子作业。
答案 0 :(得分:0)
如果您对该帖子Running Talend child jobs through a parent job的延续有疑问,那么您可以按照以下步骤操作,
以下是我的输入日期
ChildJob1, 1/16/2017
ChildJob2, 1/17/2017
ChildJob3, 1/17/2017
我已使用添加tjava
组件修改了上一个答案中的相同作业,如下所示
以下是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
选项与以下条件相关联
这给了我以下结果。
希望这会帮助你。