如何为 DataWeave 输入使用多个数据库负载

How to use multiple database payloads for DataWeave inputs

我目前在我的 Mule 项目中有一个可用的 Transform Message (DataWeave) 组件; returns 有效 JSON.

我现在需要的是使用来自第二个(有时更多)数据库有效负载的附加信息更新并添加到该转换。

我知道您可以在 dw 脚本中指定许多输入(参见 DW example tutorial)。

%dw 1.0
%input in0 application/json
%input in1 application/json
%input in2 application/json
%output application/xml

[其中 in0、in1 和 in2 是实际输入名称]

我不确定如何将此方法应用于从数据库派生的多个有效载荷。

我的目标是让我的基地 JSON 由第一个有效负载构建:

{
    "code": "some code",
    "title": "some title",
    "description": "some description",
    "keywords": []
}

效果很好。

但现在我希望 keywords 数组由下一个有效载荷填充,成为:

{
    "code": "some code",
    "title": "some title",
    "description": "some description",
    "keywords": [
        "keyword 1", "keyword 2", "keyword x"
    ]
}

如何从多个输入映射到 DataWeave 中的 JSON 输出?


详情:

  • Mule EE 版本:3.7.2
  • Anypoint Studio 版本:5.3.0

您必须将不同的有效负载分配给 flowVars,因此,您可以从 dw 脚本访问这些变量:

<set-variable variableName="myVar" value="{&quot;key1&quot;:&quot;value1&quot;}" doc:name="Variable"/>
<set-variable variableName="myVar2" value="{&quot;key2&quot;:&quot;value2&quot;}" doc:name="Variable"/>

.

%dw 1.0
%output application/json
---
{
    "a":flowVars.myVar,
    "b":flowVars.myVar2
}