How to check null state in Data weaver: Mule

Here is my xml, in this first I need to check 'RecordsEntries' should not be 'null', then RecordEntry should not be nullfollowed by a display code

<?xml version="1.0" encoding="UTF-8"?>
<Records>
  <storenumber />
  <calculated>false</calculated>
  <subTotal>12</subTotal>
 <RecordsEntries>
   <RecordEntry>
     <deliverycharge>30.0</deliverycharge>
     <entryNumber>8</entryNumber>
     <Value>true</Value>
  </RecordEntry>
  <RecordEntry>
    <deliverycharge>20.0</deliverycharge>
    <entryNumber>7</entryNumber>
    <Value>false</Value>
  </RecordEntry>
</RecordsEntries>
 <RecordsEntries>
    <RecordEntry>
      <deliverycharge>30.0</deliverycharge>
      <entryNumber>8</entryNumber>
      <Value>false</Value>
    </RecordEntry>
 </RecordsEntries>
</Records>

A few scripts also used state checking when, but somewhere there was no bracket or proper format

    orders: {
    order: {
  StoreID: payload.Records.storenumber,
  Total: payload.Records.calculated,
 (( payload.Records.RecordsEntries.*RecordEntry ) map {
    IndividualEntry: {
    Number:$.entryNumber,
    DeliverCharge:$.deliverycharge
    }
  } when ( payload.Records.RecordsEntries != null and payload.Records.RecordsEntries.*RecordEntry !=null))}
}

get an error as missing ). I tried it differently, checking the zero condition directly inside the first loop, getting such an error as "I can not force the array to a logical one." Please suggest. Thanks.

+4
source share
2

%dw 1.0
%output application/xml
---
orders: {
  order: {
  StoreID: payload.Records.storenumber,
  Total: payload.calculated,
 ((payload.Records.*RecordsEntries.*RecordEntry default []) map {
      IndividualEntry: {
        Number:$.entryNumber,
        DeliverCharge:$.deliverycharge
      }
    })
  }
}

DataWeave "" , payload.Records.*RecordsEntries.*RecordEntry, (, null map {}) .

default , null, .

*. xml , , .

+6

, script.

((payload01, indexOfPayload01) → {: payload01.Name, (LastName: payload01.LastName), payload01.LastName!= null payload01.LastName!= ''})

Name, .

0

Source: https://habr.com/ru/post/1606330/


All Articles