talend tsendmail 如何使用正则表达式过滤文件?
talend tsendmail how to filter files with regex?
我想向每个负责 1 个产品的特定人员发送电子邮件,因此我想向每个人发送一封包含同一目录中所有相关产品文件的电子邮件。我所能做的就是使用过滤器遍历存储库中的文件,但我所做的只是 filter 扩展名 .csv 或 .txt 例如,但这意味着所有文件都将发送给每个人.关于在 tsendmail 组件中使用 regex 过滤器 有什么帮助吗??或者在 tsendmail 中传递那些过滤文件的方法,意味着如何将文件列表发送到 tsendmail 就像我们处理电子邮件列表一样?
这里不需要正则表达式,你可以用一个简单的tMap来完成。
tFileList,*_*.csv
作为文件掩码
使用 tIterateToFlow 处理 tFileList 输出。创建一个包含 3 列的架构。产品列包含从文件名中提取的产品名称:((String)globalMap.get("tFileList_1_CURRENT_FILE")).split("_")[0] )
一个tMap 将产品与要使用的电子邮件一起加入。 tFixedFlowInput 用于将产品映射到电子邮件(文件会更好,这样您就可以 add/remove product/email 而无需重建)。
最后,tSendMail 使用来自 tMap 的流程发送带有已处理文件作为附件的邮件。
这里有一个可行的想法,从一开始就在临时目录中创建动态文件名,而不是使用 tfile 获取这些动态文件并将每个文件发送给他们的人。
我想向每个负责 1 个产品的特定人员发送电子邮件,因此我想向每个人发送一封包含同一目录中所有相关产品文件的电子邮件。我所能做的就是使用过滤器遍历存储库中的文件,但我所做的只是 filter 扩展名 .csv 或 .txt 例如,但这意味着所有文件都将发送给每个人.关于在 tsendmail 组件中使用 regex 过滤器 有什么帮助吗??或者在 tsendmail 中传递那些过滤文件的方法,意味着如何将文件列表发送到 tsendmail 就像我们处理电子邮件列表一样?
这里不需要正则表达式,你可以用一个简单的tMap来完成。
tFileList,*_*.csv
作为文件掩码
使用 tIterateToFlow 处理 tFileList 输出。创建一个包含 3 列的架构。产品列包含从文件名中提取的产品名称:((String)globalMap.get("tFileList_1_CURRENT_FILE")).split("_")[0] )
一个tMap 将产品与要使用的电子邮件一起加入。 tFixedFlowInput 用于将产品映射到电子邮件(文件会更好,这样您就可以 add/remove product/email 而无需重建)。
最后,tSendMail 使用来自 tMap 的流程发送带有已处理文件作为附件的邮件。
这里有一个可行的想法,从一开始就在临时目录中创建动态文件名,而不是使用 tfile 获取这些动态文件并将每个文件发送给他们的人。