i have a requirement where in i need to extract the LoadReferenceNumber and assign to a variable which is initiated inside the data weave when the LoadReferenceNumberType is MB in mule, below is the xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <CIS> <LoadReferenceNumberList> <LoadReferenceNumberType>MB</LoadReferenceNumberType> <LoadReferenceNumber>8070296</LoadReferenceNumber> </LoadReferenceNumberList> <LoadReferenceNumberList> <LoadReferenceNumberType>ACT_SP_DATE</LoadReferenceNumberType> <LoadReferenceNumber>20160404T14:12:00</LoadReferenceNumber> </LoadReferenceNumberList> <LoadReferenceNumberList> <LoadReferenceNumberType>SP_DATE</LoadReferenceNumberType> <LoadReferenceNumber>20170404T14:12:00</LoadReferenceNumber> </LoadReferenceNumberList> </CIS>
The example below is a dataweave component which extract the LoadReferenceNumber from LoadReferenceNumberList where LoadReferenceNumberType == 'MB':
<dw:set-variable variableName="LoadReferenceNumber"><![CDATA[%dw 1.0
%output application/java
---
value: ((payload.CIS.*LoadReferenceNumberList filter $.LoadReferenceNumberType == 'MB')[0].LoadReferenceNumber) default null]]></dw:set-variable>
</dw:transform-message>
The result is a LinkedHashMap, the example below is logger which logs the LoadReferenceNumber:
<logger message="#[flowVars.LoadReferenceNumber.value]" level="INFO"
doc:name="Logger" />
Hope this helps :)
you use that data weave
%dw 1.0
%output application/java
---
value: ((payload.CIS.*LoadReferenceNumberList filter $.LoadReferenceNumberType == 'MB')[0].LoadReferenceNumber) default null
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.