Talend - 如果fileName包含给定模式,则运行子作业

时间:2014-10-09 21:48:46

标签: talend

根据文件名运行给定子作业的适当语法是什么?我的工作看起来像这样:

tWaitForFile ---iterate-> tFileCopy ---ifFileNameContains123-> tRunJob1
                                    \
                                     \ifFileNameContains456-> tRunJob2

最好在RunIf触发器上使用正则表达式吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我倾向于在tFileCopy之后放置一个tMap并从中得到两个输出。然后打开每个输出表上的表达式面板并输入input_row.FileName.toLowerCase().contains("123")并将此输出连接到tRunJob1,然后将input_row.FileName.toLowerCase().contains("456")连接到tRunJob2。

这使得可以轻松地更改为更多输出,并明确指出您正在查找第一个子作业中包含“123”的文件名,并在第二个运行作业中查找包含“456”的文件名。

在RunIf触发器中使用表达式应该没问题,但正如我所说的,我倾向于使用tMap显式拆分我的流程,这将为您留下更多选项(加上它允许在组件中内置测试)。