В Dataweave 1 вы можете определить глобальную библиотеку, создав файл dwl в src / main / resources следующим образом:
SRC / главная / ресурсы / с.в. / 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"
}
}
]
}