如何在Mule工作流程中获取当前日期

时间:2018-11-16 16:54:12

标签: mule anypoint-studio mule-esb

我希望在工作流中获取当前日期,因此可以将其附加到要写入文件夹的文件名中。

当我环顾四周时,我只能看到如何在dataweave中进行操作,但这似乎无法在dataweave之外的其他组件的配置中使用。

我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:1)

在Mule 3中,您可以轻松地使用DataWeave进行操作,并将其分配给变量或有效负载,尽管在utechtzs的答案中XML比MEL表达式更冗长。

作为如何使用日期创建文件名并将字符串分配给变量的示例:

<dw:transform-message doc:name="Transform Message">
  <dw:set-variable variableName="filename"><![CDATA[%dw 1.0
     %output application/java
     ---
     "myfile-" ++ (now as :string {format: "yyyyMMddHHmmssSSS"})]]>
  </dw:set-variable>
</dw:transform-message>
<logger level="INFO" doc:name="Logger" message="#[flowVars.filename]"/>

在Mule 4中,DataWeave替换了表达式中的MEL,您可以直接使用它。例: #["myfile-" ++ (now() as String {format: "yyyyMMddHHmmssSSS"})]

两个示例都返回相同的Java字符串。示例:"myfile-20181117150935499"

答案 1 :(得分:0)

#[server.dateTime.format('yyyyMMddHHmmssSSS')]或您想要的任何其他格式。

文档:https://docs.mulesoft.com/mule-runtime/3.9/mule-expression-language-date-and-time-functions#obtaining-the-server-time