Я определяю глобальную функцию для полезной нагрузки, но в dataweave 1.0 я не могу выполнить эту задачу. Я должен определить отдельный глобальный файл данных, в который я должен добавить условия для полезной нагрузки, например, если пол == «мужской», затем заголовок = «мистер». Как я могу выполнить задание. Я добавил свой ввод и ожидаемую полезную нагрузку.
входная полезная нагрузка:
{
"persons": [
{
"name": "Devendra",
"gender": "male",
"age": 25
},
{
"name": "aman",
"gender": "male",
"age": 16
}
]
}
ожидаемая полезная нагрузка:
{
"persons": [
{
"title": "MR.",
"name": "Devendra",
"gender": "male",
"age": 25,
"adult": true
},
{
"title": "MS.",
"name": "Seema",
"gender": "female",
"age": 16,
"adult": false
}
]
}





В Dataweave 1 вы можете определить глобальную библиотеку, создав файл dwl в src/main/resources следующим образом:
src/main/resources/dw/myFunctions.dwl:
%dw 1.0
%function titleForGender(gender)("mr" when gender= = "male" otherwise "whoKnows?")
---
{
"titleForGender": titleForGender
}
Этот сценарий создает глобальную функцию, а затем предоставляет ее в теле, чтобы она была доступна для другого сценария.
Затем в вашем основном преобразовании dw что-то вроде этого:
%dw 1.0
%output application/json
%var sampleData = {persons:[{name:"Devendra", gender:"male",age:25}, {name:"aman", gender:"male",age:16}]}
%var lib = readUrl("classpath://dw/myfunctions.dwl")
---
persons: sampleData.persons map {
"person": $ ++ {title: lib.titleForGender($.gender)}
}
Он использует readUrl для чтения функции из глобального файла как var lib, а затем использует его при сопоставлении данных человека, передаче gender в функцию и получении заголовка, возвращаемого функцией.
Это выводит:
{
"persons": [
{
"person": {
"name": "Devendra",
"gender": "male",
"age": 25,
"title": "mr"
}
},
{
"person": {
"name": "aman",
"gender": "male",
"age": 16,
"title": "mr"
}
}
]
}
Вложите их: x, когда a==1, иначе (y, когда a==2, иначе (z)) и т.д.
каков синтаксис для определения нескольких условий if else здесь -% function titleForGender(gender)("г-н", когда пол= = "мужской", иначе "кто знает?")