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



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

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

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

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

这使得它可以很容易地扩展为更多的输出,并明确地声明您正在第一个子作业中查找包含"123"的文件名,在第二次运行作业中查找含有"456"的文件名称。

在RunIf触发器中使用该表达式应该很好,但正如我所说,我倾向于使用tMap显式拆分流,这会给您留下更多的选择(此外,它还允许在组件中进行内置测试)。

最新更新