java 归档文件在所有日期(前一天和当天)与talend

92dk7w1h  于 2023-06-28  发布在  Java
关注(0)|答案(2)|浏览(96)

我创建了一个作业,在当天归档文件。我现在需要改进我的工作,以存档文件在所有天(当前和以前的天)。我使用了一个全局变量,如:

"*_"+ TalendDate.formatDate("yyyy_MM_dd",TalendDate.getCurrentDate())+".csv"

this job get files from FTP and archive them in current day
如何将全局变量更改为在所有日期存档?
我用了Tloop,但没有结果。

kb5ga3dv

kb5ga3dv1#

我认为您可以通过使用tIterateToFlow组件对输入文件夹进行双重阅读来实现这一点。

  • 在tFileList_1中,获取所有csv,不带掩码(或仅 *.csv)
  • 在tIterateToFlow中,提取输入文件名中的日期(根据您的示例,这应该可以做到:StringHandling.RIGHT(((String)globalMap.get("tFileList_1_CURRENT_FILE")),14)
  • 添加tFlowTo迭代,无需自定义
  • 然后,在tFileList_2中,可以过滤在tIterateToFlow中创建的字段:这是你的模式:"*_"+((String)globalMap.get("row2.dateFile"))
  • 然后tFileArchive_1可以压缩输出文件夹中的文件(使用与tFileList中相同的文件掩码)

我试了一下,好像还能用。没有检查tFTP组件tho。
希望这个能帮上忙

4uqofj5v

4uqofj5v2#

我真的很感谢上面的解决方案。我的情况类似,但变化不大。
我需要删除一个月的所有文件&只保留最近5天的文件&删除以前的文件。我从上面的场景中得到了解决方案。
对于上面的场景,我需要补充一点:

In tfilelist2  File path (Directory) use global variable of tfilelist1 > ((String)globalMap.get("tFileList_1_CURRENT_FILEDIRECTORY"))

因此,您可以抓取当前文件运行按照上述作业。

相关问题