1

1.街道地址:如果 ABC 为空且填充了 ZXY,则映射 ZXY 2.街道地址 UC:如果填充了 ZXY 和 ABC,并且 ABC 不以'PO BOX'、'PO BOX'、'BP'或'开头POSTBUS',地图 ABC;否则 MAP ZXY 3.Street 地址:如果 P08 ABC 已填充且 ZXY 为空白,则仅 MAP ABC。

我已经设法将第一个条件和第三个条件映射如下,但不知道如何做第二个条件。

{
ADDRESS_LINE1:ABC
   } when ABC != ""
     otherwise
     {

     ADDRESS_LINE1:ZXY
     }
4

1 回答 1

0

试试这个......它应该工作。

你可以嵌套 when .. 否则就像你用任何语言做的那样。

%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>
于 2016-03-18T14:30:02.207 回答