Как получить текущую дату в рабочем процессе Mule - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу получить текущую дату в рабочем процессе, чтобы я мог добавить ее к имени файла, который пишу в папку.

Когда я осмотрелся, я вижу только, как это сделать в dataweave, но это не похоже на то, как это будет работать в конфигурации других компонентов вне dataweave.

Как я могу это сделать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

В Mule 3 вы можете легко сделать это с помощью DataWeave и назначить его переменной или полезной нагрузке, хотя XML немного более многословен, чем выражение MEL в ответе utechtzs.

В качестве примеракак создать имя файла с датой и присвоить строку переменной:

<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"

0 голосов
/ 16 ноября 2018

#[server.dateTime.format('yyyyMMddHHmmssSSS')] или любой другой формат, который вам нужен.

Документация: https://docs.mulesoft.com/mule-runtime/3.9/mule-expression-language-date-and-time-functions#obtaining-the-server-time

...