У меня есть этот фрагмент кода Dataweave
list_of_orders: {
order: payload map ((payload01 , indexOfPayload01) -> {
order_dtl:
"" when payload01[30] == "S"
otherwise
"" when payload01[30] == "C"
otherwise
[{
data: some_data
}],
order_hdr: {
data: some_data
}
})
}
Этот код выведет следующие данные
"list_of_orders": {
"order": [
{
"order_dtl": [
{
"data": "some_data"
}
],
"order_hdr": {
"data": "some_data"
}
}
]
}
Но это будет сделано только в том случае, если payload01[30] != "S" или "C" Если payload01[30] равен "S" или "C", то он делает это
"list_of_orders": {
"order": [
{
"order_dtl": "",
"order_hdr": {
"data": "some_data"
}
}
]
}
Причина, по которой я это сделал, заключается в том, что меня попросили включить строку DETAIL только в том случае, если order_type не является "C" или "S".
Проблема в том, что фактический ключ — order_dtl — все еще присутствует, и мне там вообще ничего не нужно.
Как сделать KEY условным?
Любая помощь приветствуется
Спасибо





То, что вы ищете, называется условные элементы
list_of_orders: {
order: payload map ((payload01 , indexOfPayload01) -> {
(order_dtl:
[{
data: some_data
}]) when((payload01[30] != "S") and (payload01[30] != "C")),
order_hdr: {
data: some_data
}
})
}
Извините, это был синтаксис dw 2. Исправлено для dw1