此问题与Talend Open Studio代码有关。
我使用tSendmail组件作为子作业,需要在父作业失败时运行(tFtpPut)。但是,在tFtpPut中,文件名被文件掩码过滤(例如,如果我将Ee *作为掩码,它将上传名为Eedoh的文件),但在tSendMail中则不是这样。
我知道tFtpPut使用文件系统中的特殊字符来创建文件名掩码,而tSendMail应该使用Java正则表达式。问题是(正如我在源代码中看到的),List.add(String)函数用于添加文件名,因此我不能在.add函数中使用正则表达式作为参数。
所以,我需要上传所有名称与正则表达式匹配的文件。
顺便说一下,我试图更改源代码(尝试迭代整个文件夹并添加名称与正则表达式匹配的所有文件),但它没有帮助,错误在其他地方发生,我无法跟踪问题。
答案 0 :(得分:0)
对于那个问题,我会在组件(FTP和sendMail)之前创建一个regexpr过滤器。
在“高级模式”下使用tFilterRow组件非常容易。您的过滤条件为inputrow.filenamefield.matches("java_regexpr")
。
这两个组件的外部过滤器是相同的,您不再需要使用FTP组件的特定过滤器。