将清理组件连接到tFileList - Talend

时间:2014-12-18 21:43:19

标签: talend

在tFileList的迭代过程中将逻辑应用于对象的最佳方法是什么。

问题是,如果我使用tFileList获取文件列表,我无法使用tJavaRow或jMap创建我想要重命名文件的文件名。基本上,如果我有多年的zip文件(2010,2011,2012等),每个zip文件包含相同名称的文件(f1.csv,f2.csv,f3.csv),我想迭代压缩文件,解压缩它们并使用重命名文件 f1_2010.csv,f2_2010.csv,f3_2010.csv..f1_2012.csv等。

谢谢!

1 个答案:

答案 0 :(得分:0)

迭代链接提供了一种基于事件或事实执行组件的方法,而主链接在组件之间传输数据。

看起来像你应该能够解决你的问题:

tFileList_1 --iterate--> tFileUnarchive_1
                           |
                        onComponentOK
                           |
                         tFileList_2 -- iterate --> tFileCopy_1
                           |
                        onComponentOK
                           |
                         tFileArchive_1

在tFileUnarchive中使用((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))来获取ZIP路径。 在tFileCopy中使用((String)globalMap.get("tFileList_2_CURRENT_FILEPATH"))获取文件路径并将其配置为重命名。

对于您的名称修改,您可以在" onComponentOK"上添加tJava。链接。使用globalMap.put("year",((String)globalMap.get("tFileList_1_CURRENT_FILEPATH")).substring(x,x))或更复杂的代码。并在您的其他组件参数中使用这些变量。