【问题标题】:How to store the current date and message id in Mule 4 variable?如何将当前日期和消息 ID 存储在 Mule 4 变量中?
【发布时间】:2022-02-02 21:41:58
【问题描述】:

就我而言,我正在从 Mule 3 迁移到 Mule 4。

我想将当前日期和消息 ID 存储在 mule 4 变量中。

日期格式是“yyyyMMddHHmmssSSS”中的当前日期

Message_id为日期++(随机id(大小为6个字符))

mule 3 中的代码:

<set-variable variableName="messageDateF" value="#[server.dateTime.format('yyyyMMddHHmmssSSS')]" doc:name="set messageDateF"/>
<set-variable variableName="messageId" value="#[flowVars.messageDateF]#[UUID.randomUUID().toString().replace('-', '').substring(0,5)]" doc:name="set messageId"/>

预期输出:

20220202024435724ddebd

请帮助我。

【问题讨论】:

    标签: mule mule-component mule4


    【解决方案1】:

    您好,在 mule4 中,我们使用 DWL,因此您可以使用转换消息替换 Mule 4 中的代码,并将输出设置为名称为“messageId”的变量

    注意:我使用的是 4.4.0 mule 运行时,作为 DataWeave 版本 2.4.0 中引入的子字符串。根据官方文档链接

    %dw 2.0
    import * from dw::core::Strings
    output application/json
    var messageDateF = now() as String {format: "yyyyMMddHHmmssSSS"}
    var messageId= messageDateF ++ "" ++ substring ((uuid() replace ("-") with ""),0,5)
    ---
    messageId
    

    【讨论】:

    【解决方案2】:

    这是 Mule 4.3 的等效集合变量。请注意,我只使用了一个变量。如果真的需要两个变量,你可以分成两个变量。

    <set-variable variableName="messageId" value="#[now() as String {format: "yyyyMMddHHmmssSSS"} ++ (uuid() replace ("-") with "")[0 to 5]]" doc:name="set messageId"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2021-12-31
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多