根据日期

时间:2017-01-16 10:24:35

标签: talend

我有一个talend作业,它接受来自csv文件的输入。 CSV文件具有子作业名称和开始日期。现在,这就是工作的构建方式 我有一个tFileInputDelimited,它接受来自文件的输入,并连接到tFlowToIterate,它具有键值对

示例:

  • c1,c2和c3是C1 - > Job1

  • C2 - > J1

  • C3 - > 1/16/2017

J1是子作业的名称,C3具有日期。 在trunjob中我使用了“使用动态作业”,而Context作业是“globalMap.get(”c2“),它将执行所有子作业。

现在我需要执行那些c3值为今天的子作业。

1 个答案:

答案 0 :(得分: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

希望这会帮助你。