首页 > 解决方案 > 如何在 Mule 工作流程中获取当前日期

问题描述

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

当我环顾四周时,我只能看到如何在 dataweave 中执行此操作,但这看起来不适用于 dataweave 之外的其他组件的配置。

我怎样才能做到这一点?

谢谢

标签: muleanypoint-studiomule-esb

解决方案


在 Mule 3 中,您可以使用 DataWeave 轻松完成并将其分配给变量或有效负载,尽管 XML 比 utechtzs 的答案中的 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"


推荐阅读