Как сделать это отображение данных dataweave(Mulesoft)
Адрес 1.Street: если ABC пуст и заполнен ZXY, отобразите ZXY 2.Street Address UC: если заполнены оба ZXY и ABC и ABC не начинается с 'PO BOX', 'PO BOX', 'BP' или ' ПОСТБУСЬ, Карта Азбуки; в противном случае MAP ZXY 3.Street Address: если заполнен P08 ABC и ZXY пуст, только MAP ABC.
Мне удалось отобразить 1-е условие и 3-е состояние, как показано ниже, но я не уверен, как сделать второе.
{
ADDRESS_LINE1:ABC
} when ABC != ""
otherwise
{
ADDRESS_LINE1:ZXY
}
1 ответ
Попробуйте это... это должно работать.
Вы можете вложить, когда.. иначе, как вы бы делали на любом языке.
%dw 1.0
%output application/java
---
{
'Address': (payload.addr.ABC when (payload.addr.ABC[0..5] != 'PO BOX'
and payload.addr.ABC[0..7] != 'P.O. BOX') otherwise payload.addr.XYZ)
when (payload.addr.ABC != ''
and payload.addr.XYZ != '')
otherwise (payload.addr.ABC when payload.addr.ABC != '' otherwise payload.addr.XYZ)
}
Я проверил с вводом образца -
<?xml version='1.0' encoding='UTF-8'?>
<addr>
<ABC>P.O. BOX 123</ABC>
<XYZ>DEFG</XYZ>
</addr>