0
votes

1.Street Address: If ABC is blank and ZXY is populated,Map ZXY 2.Street Address UC: If both ZXY and ABC are populated and ABC does not begin with 'PO BOX', 'P.O. BOX', 'BP' or 'POSTBUS', Map ABC; otherwise MAP ZXY 3.Street Address : If P08 ABC is populated and ZXY is blank, MAP ABC only.

I have managed to map 1st condition and 3rd condotion as below but am not sure how to do the second one.

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

     ADDRESS_LINE1:ZXY
     }
1

1 Answers

0
votes

Try this ... it should work.

You can nest when .. otherwise like you would do in any language.

%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)

}

I checked with Sample input -

<?xml version='1.0' encoding='UTF-8'?>
<addr>
    <ABC>P.O. BOX 123</ABC>
    <XYZ>DEFG</XYZ>
</addr>