我正在使用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],这本身就可以工作,但是至少就我所知,你不能在代码中嵌套表达式。
任何帮助?
更新:我正在使用入站文件传输
答案 0 :(得分:7)
由于您没有显示端点配置,我将假设这是在文件入站端点发生的。
出于超乎想象的原因,入站端点后面的文件消息接收器在评估表达式时将originalFilename
属性放在出站作用域中以生成归档文件名。 / p>
所以请使用:message.outboundProperties.originalFilename
答案 1 :(得分:-1)
我已经在mel
中对此EXPRESSION
ESB 3.7.1
进行了测试,并且工作正常!!
message.inboundProperties.originalFilename=='firstfile.txt'