如何使用MEL读取骡子中的特定文件?

时间:2016-04-23 09:59:07

标签: mule mule-studio mule-component mule-el

从ftp。

下载的所有文件

enter image description here

我试过这个流程:

<flow name="myFlow">
    <file:inbound-endpoint path="fiel_path" connector-ref="File" pollingFrequency="3600000" fileAge="50000" responseTimeout="10000" encoding="UTF-16" mimeType="text/csv" doc:name="File">
        <file:filename-regex-filter pattern=".*#[server.dateTime.format('yyyy_MM_dd')].*.csv" caseSensitive="true"/>
    </file:inbound-endpoint>
    ....

但我无法读取文件。 在此先感谢。

3 个答案:

答案 0 :(得分:0)

在正则表达式中包含HH:mm:ss

#[server.dateTime.format('yyyy-MM-dd HH:mm:ss')]

答案 1 :(得分:0)

在正则表达式过滤模式中尝试此操作 &#34; *#[server.dateTime.format(&#39; yyyy_MM_dd_HH:MM:SS&#39)]。CSV&#34;

答案 2 :(得分:0)

文件正则表达式模式不处理MEL表达式。

您必须在文件入站端点中更改文件名 - 正则表达式 - 过滤器模式,并在流中包含表达式过滤器。

<file:inbound-endpoint path="fiel_path" connector-ref="File" pollingFrequency="3600000" fileAge="50000" responseTimeout="10000" encoding="UTF-16" mimeType="text/csv" doc:name="File">
    <file:filename-regex-filter pattern=".*\d{4}_\d{2}_\d{2}_.*.csv" caseSensitive="true"/>
</file:inbound-endpoint>

<expression-filter expression="#[message.inboundProperties.originalFilename.contains(server.dateTime.format('yyyy_MM_dd'))]" doc:name="Filter today's date Expression"/>

上述正则表达式过滤器仅允许那些文件名中包含日期的文件,例如anytext_2016_05_10_anytext.csv。

上述表达式过滤器仅允许今天的日期。我假设您只希望今天的日期基于您在正则表达式中使用server.datetime。