数据编织中的复杂操作
Complex operations in dataweave
我需要将 groovy 代码映射到数据编织中。
现有的groovy代码类似于伪例子as-
if(condition) {
payload.each { data -> {
function1(data.attributes)
function2(data.attributes)
if(condition) {set flag}
}
if(flag is set) {return payload}
else {return errorMessage}
}
}
function1(data) {if(condition) {return errorMessage} else {return data}}
function2(data) {if(condition) {return errorMessage} else {return data}}
将输入负载视为-
[
{
"attribute1": "value1",
"attribute2": "value2",
"attribute3": "value3",
"attribute4": "value4",
},
{
"attribute1": "value5",
"attribute2": "value6",
"attribute3": "value7",
"attribute4": "value8",
}
]
输出是一个JSON数组,它依赖于标志变量。如果设置了标志,输出 JSON 数组将是关于错误消息的,否则将传递原始有效负载。
有没有一种方法可以将其转换为 dataweave,而无需使用太多额外的 mule 进程?
提前致谢
假设您有一个名为 flag 的变量(true 表示成功,false 表示错误)和一个包含错误消息的变量,您可以使用以下 DataWeave 表达式:
%dw 2.0
output application/json
---
if (vars.flag == true)
payload
else
{
errorMessage: vars.errorMessage
}
如果 vars.flag 的值为真,DataWeave 表达式将 return 有效载荷原样。否则,它将 return 一个 JSON 对象类似于:
{
"errorMessage": "An error occurred"
}
我需要将 groovy 代码映射到数据编织中。 现有的groovy代码类似于伪例子as-
if(condition) {
payload.each { data -> {
function1(data.attributes)
function2(data.attributes)
if(condition) {set flag}
}
if(flag is set) {return payload}
else {return errorMessage}
}
}
function1(data) {if(condition) {return errorMessage} else {return data}}
function2(data) {if(condition) {return errorMessage} else {return data}}
将输入负载视为-
[
{
"attribute1": "value1",
"attribute2": "value2",
"attribute3": "value3",
"attribute4": "value4",
},
{
"attribute1": "value5",
"attribute2": "value6",
"attribute3": "value7",
"attribute4": "value8",
}
]
输出是一个JSON数组,它依赖于标志变量。如果设置了标志,输出 JSON 数组将是关于错误消息的,否则将传递原始有效负载。 有没有一种方法可以将其转换为 dataweave,而无需使用太多额外的 mule 进程?
提前致谢
假设您有一个名为 flag 的变量(true 表示成功,false 表示错误)和一个包含错误消息的变量,您可以使用以下 DataWeave 表达式:
%dw 2.0
output application/json
---
if (vars.flag == true)
payload
else
{
errorMessage: vars.errorMessage
}
如果 vars.flag 的值为真,DataWeave 表达式将 return 有效载荷原样。否则,它将 return 一个 JSON 对象类似于:
{
"errorMessage": "An error occurred"
}