2016-02-23 4 views
0

У меня есть 2 поля на входе, один является primary_language & другой является вторичным_языком. У меня есть случай, когда мне нужно искать значения, присутствующие в этих двух полях, а затем возвращать определенное значение в соответствии с таблицей. Например, Если основным языком является английский & вторичный язык является нулевым, тогда английский будет выходным &, если основным языком является испанский & вторичный знак, а затем помещен None на выходе & и так далее. Можно ли сказать, как мы можем это сделать в dataweave в mulesoft.Пользовательский поиск в dataweave

ответ

1

У вас действительно есть более динамичная логика или ее только два условия, о которых вы говорили выше?

вы можете использовать, когда/иначе, или вызвать другой поток, чтобы получить значение.

%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) 
} 
+0

помогло или разрешило проблему? –

+0

Hi @Manik Magar, я использовал другой подход для этого, поэтому не уверен, что это сработает. У меня есть другой аналогичный вопрос: я создаю xml в выводе в одной Dataweave, из которой мне нужно найти значение для поля, скажем, «Status» из другого потока и вывода данных weave (путем объявления переменной в этом переплетении данных для преобразования состояния ввода в некотором фиксированном формате). Я помещаю статус фонда: lookup («Тест», полезная нагрузка) и в потоке «Тест» Я помещаю это приложение % вывода/java % var STATUS = {«Com»: «ПОЛНОЕ», «Сброс»: «ВОЗВРАТ»} --- {fund-status: flowVars.XYZ.status}. Но я получаю Не могу принуждать объект к строке. – Hemant

+0

@Hemant, если это другой вопрос, не могли бы вы открыть новый вопрос и, если возможно, добавить конфигурацию, чтобы мы могли помочь. Благодарю. –

0

Я бы рекомендовал, чтобы создать еще один поток, который выполняет этот поиск для вас (потенциально вы могли бы сделать базы данных вызова, или что-то еще, как заводной сценарий), и сохранить ваши ценности и то, что вы ожидаете получить вернулся на основе на эти значения.

https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#expressions-that-call-external-flows охватывает эту концепцию немного, но общая идея заключается в следующем:

language: lookup("myLookupFlow", payload) 

Тогда все, что вам нужно сделать, это запросить набор данных на основе первичных и вторичных, и вы получите " преобразованное "значение обратно.

Смежные вопросы