2

我正在使用 Mule 3.4.1 创建一个进程,在处理文件后,它会用特定的文件名写出文件。输入文件名是:MMDDYYYY_sys_newhires.csv 处理后的文件名是:MMDDYYYY_sys_newhires_NNN.csv

我正在使用的代码如下:

#[filename = message.inboundProperties.originalFilename;
  filename= com.cfa.apps.icims.mule.CounterSingleton.getInstance().getCount() 
         +  filename.substring(0,filename.length() -1 -4) + ".csv";
  filename]

问题存在于第一行。message.inboundProperties.originalFilename。

我尝试了许多不同的组合

message.inboundProperties.originalFilename
message.inboundProperties['originalFilename']
message.inboundProperties.originalFileName
message.inboundProperties['originalFileName']
message.inboundProperties.sourceFilename
message.inboundProperties['sourceFilename']
message.inboundProperties.sourceFileName
message.inboundProperties['sourceFileName']

现在我也尝试嵌套#[header:originalFilename],这本身就可以工作,但至少据我所知,你不能在代码中嵌套表达式。

有什么帮助吗?

更新:我正在使用入站文件传输

4

2 回答 2

7

由于您没有显示端点配置,我将假设这是通过文件入站端点发生的。

由于超出想象的原因,入站端点后面的文件消息接收器在评估表达式以生成存档文件名时将originalFilename属性置于出站范围内。

所以使用:message.outboundProperties.originalFilename

于 2013-09-18T20:27:35.087 回答
-1

我已经对此进行了测试mel EXPRESSIONESB 3.7.1并且工作正常!!

message.inboundProperties.originalFilename=='firstfile.txt'
于 2015-08-02T19:21:09.557 回答