Как использовать несколько полезных данных базы данных для входных данных DataWeave

В настоящее время у меня есть рабочий Transform Message (DataWeave ) компонент в моем проекте Mule; который возвращает действительный JSON.

Теперь мне нужно обновить и добавить к этому преобразованию дополнительную информацию из второй (а иногда и более) полезной нагрузки (ов) базы данных.

Я знаю, что вы можете указать множество входных данных в сценарии dw (см. Пример DW).

%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": []
}

который отлично работает.

Но теперь я хочу, чтобы массив ключевых слов был заполнен следующей полезной нагрузкой, чтобы он стал:

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

Как сопоставить вывод JSON в DataWeave с несколькими входами?

<час />

Подробности:

  • Версия Mule EE: 3.7.2
  • Версия Anypoint Studio: 5.3.0


person Möoz    schedule 25.11.2015    source источник
comment
Могу ли я создать два преобразования и заполнить их одно за другим? Могу ли я вызывать базу данных несколько раз и назначать их полезные данные объекту Payload?   -  person Möoz    schedule 25.11.2015
comment
Вы должны вызвать базы данных, а затем назначить их полезные данные для flowVars. Посмотри на мой ответ   -  person DavoCoder    schedule 26.11.2015


Ответы (1)


Вы должны назначить различные полезные данные для 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
}
person DavoCoder    schedule 26.11.2015
comment
Идеально. В документации об этом не упоминается, AFAIK. - person Möoz; 27.11.2015