У меня есть 2 поля на входе, один является primary_language & другой является вторичным_языком. У меня есть случай, когда мне нужно искать значения, присутствующие в этих двух полях, а затем возвращать определенное значение в соответствии с таблицей. Например, Если основным языком является английский & вторичный язык является нулевым, тогда английский будет выходным &, если основным языком является испанский & вторичный знак, а затем помещен None на выходе & и так далее. Можно ли сказать, как мы можем это сделать в dataweave в mulesoft.Пользовательский поиск в dataweave
ответ
У вас действительно есть более динамичная логика или ее только два условия, о которых вы говорили выше?
вы можете использовать, когда/иначе, или вызвать другой поток, чтобы получить значение.
%dw 1.0
%output application/java
---
{
language: 'English' when (payload.primary == 'English' and payload.secondary is :null)
otherwise ('None' when payload.primary == 'Spanish' and payload.secondary == 'Sign'
otherwise ''
),
language2: lookup("testFlow",payload)
}
Я бы рекомендовал, чтобы создать еще один поток, который выполняет этот поиск для вас (потенциально вы могли бы сделать базы данных вызова, или что-то еще, как заводной сценарий), и сохранить ваши ценности и то, что вы ожидаете получить вернулся на основе на эти значения.
https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#expressions-that-call-external-flows охватывает эту концепцию немного, но общая идея заключается в следующем:
language: lookup("myLookupFlow", payload)
Тогда все, что вам нужно сделать, это запросить набор данных на основе первичных и вторичных, и вы получите " преобразованное "значение обратно.
помогло или разрешило проблему? –
Hi @Manik Magar, я использовал другой подход для этого, поэтому не уверен, что это сработает. У меня есть другой аналогичный вопрос: я создаю xml в выводе в одной Dataweave, из которой мне нужно найти значение для поля, скажем, «Status» из другого потока и вывода данных weave (путем объявления переменной в этом переплетении данных для преобразования состояния ввода в некотором фиксированном формате). Я помещаю статус фонда: lookup («Тест», полезная нагрузка) и в потоке «Тест» Я помещаю это приложение % вывода/java % var STATUS = {«Com»: «ПОЛНОЕ», «Сброс»: «ВОЗВРАТ»} --- {fund-status: flowVars.XYZ.status}. Но я получаю Не могу принуждать объект к строке. – Hemant
@Hemant, если это другой вопрос, не могли бы вы открыть новый вопрос и, если возможно, добавить конфигурацию, чтобы мы могли помочь. Благодарю. –