Как установить переменную на основе значения в полезной нагрузке?

Как установить переменную (с помощью преобразователя set variable) на основе значения в полезной нагрузке? где полезная нагрузка имеет формат json.

если payload.segmentation = local, тогда значение переменной должно быть "material_reg"

если payload.segmentation = network, то значение переменной должно быть «материальным»


person Nadeem    schedule 07.04.2020    source источник
comment
Что это за время выполнения мула?   -  person maddestroyer7    schedule 07.04.2020
comment
Время работы 4.2.2. Студия 7.41   -  person Nadeem    schedule 07.04.2020


Ответы (1)


Вы можете использовать сопоставление с образцом:

%dw 2.0
output application/json
---
payload.segmentation match {
 case "local" -> "material_reg"
 case "network" -> "material"
}

Или просто if / else clauses:

%dw 2.0
output application/json
---
if (payload.segmentation == "local") 
    "material_reg"
else 
    if (payload.segmentation == "network") 
        "material" 
    else 
        ""

Обратите внимание, что я использую application/json в качестве вывода, но я думаю, что application/java или даже text/plain подойдет вам, так как вам просто нужна переменная String.

person afelisatti    schedule 07.04.2020
comment
Я пробовал их, но получаю ошибки типа Auto-Coercing. Не удалось запустить и после развертывания. - person Nadeem; 07.04.2020
comment
Эти решения должны работать, если они не для вас, я бы предложил добавить пример вашей полезной нагрузки и / или xml вашего потока. - person maddestroyer7; 07.04.2020