【问题标题】:How do I set an outputArument in Dataweave如何在 Dataweave 中设置 outputArument
【发布时间】:2016-10-18 07:03:35
【问题描述】:

我正在使用 mule 3.7.3 并希望能够像在 Datamapper 中那样设置一个 outputArgument,以便在 java 代码中使用来聚合分散收集结果。我该怎么做?

%dw 1.0
%output application/json
---
payload map ((payload01 , indexOfPayload01) -> {
    dept: payload01.name,
    deptId: payload01.id
})

【问题讨论】:

  • outputArgument 到底是什么意思?

标签: variables mule datamapper dataweave


【解决方案1】:

当你在datamapper中设置一个输出参数时,它在data mapper执行后成为流变量。

在 dataweave 中,您定义转换并将其作为有效负载和/或变量。

在下面的示例中,我在 Dataweave 中进行了两次转换。

<dw:transform-message doc:name="Transform Message">

            <dw:set-payload ><![CDATA[%dw 1.0
%output application/java
---
{
    "key":payload[0..3]
}]]></dw:set-payload>

            <dw:set-variable variableName="myOutputVar"><![CDATA[%dw 1.0
%output application/java
---
{
    key2:'sample var'
}]]></dw:set-variable>

        </dw:transform-message>

这里,我有两个

  • :此转换的输出将设置为流中下一个转换器的有效负载。
  • :它指定了一个唯一的 variableName 属性。此转换的输出将设置为 flowVariable,其键在 variableName 属性中指定。您可以在此处将 datamapper outputArguments 与 DataWeave 关联起来。

希望这会有所帮助!

【讨论】:

【解决方案2】:

在输出端的数据编织中,只需在下拉菜单中选择新目标 在新目标中选择变量或属性,它们将被设置为字符串。

<dw:transform-message metadata:id="4b36924c-a436-40b5-ad3b-f13acd1ec963" doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
}]]></dw:set-payload>
            <dw:set-variable variableName="NewVariable"><![CDATA[%dw 1.0
%output application/java
---
flowVars.Input]]></dw:set-variable>
        </dw:transform-message>

【讨论】:

    【解决方案3】:

    如果你想要返回一个字符串变量而不是一个有效载荷映射,你需要两者,设置一个你需要转换的有效载荷“”并设置返回变量“”

    另外,你可以做这样的事情来返回一个字符串

    %dw 1.0
    %output application/json
    ---
    {
      message: "return value"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2016-06-04
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多