Я получаю приведенный ниже ответ xml от веб-службы, чего я хочу добиться, как показано ниже: 1. Найдите самый большой SEQ_NO из ответа.2. Отформатируйте ответ, как показано ниже, в ожидаемом ответе, но записанный мною поток данных (который я вставил ниже) не дает желаемого результата.
Не могли бы вы помочь !!
Пример полезной нагрузки
<?xml version="1.0" encoding="UTF-8"?>
<GSBResponse xmlns="http://sampleorg.org/" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<GSBResult xmlns:b="http://schemas.org/2004/07/DummyServ" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<b:Reply>0</b:Reply>
<b:UID>3001</b:UID>
<b:Counts>
<b:GBCContent>
<b:SEQ_NO>1</b:SEQ_NO>
<b:BNO>112233-444</b:BNO>
<b:BTYPE>A</b:BTYPE>
<b:DC>2018-10-08T16:31:36.0754167+02:00</b:DC>
<b:Values>
<b:GBCV>
<b:Code>000379</b:Code>
<b:Count>2</b:Count>
<b:Amount>100</b:Amount>
</b:GBCV>
</b:Values>
<b:TNO>8934</b:TNO>
<b:RNO>3334</b:RNO>
</b:GBCContent>
<b:GBCContent>
<b:SEQ_NO>8</b:SEQ_NO>
<b:BNO>112233-555</b:BNO>
<b:BTYPE>S</b:BTYPE>
<b:DC>2018-10-08T16:31:36.0754167+02:00</b:DC>
<b:Values>
<b:GBCV>
<b:Code>000379</b:Code>
<b:Count>2</b:Count>
<b:Amount>100</b:Amount>
</b:GBCV>
<b:GBCV>
<b:Code>000400</b:Code>
<b:Count>3</b:Count>
<b:Amount>200</b:Amount>
</b:GBCV>
</b:Values>
<b:TNO>8934</b:TNO>
<b:RNO>3334</b:RNO>
</b:GBCContent>
</b:Counts>
</GSBResult>
</GSBResponse>
Вывод, который я получаю:
[
{
"SEQ_NO": "1",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-444",
"BTYPE": "A",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000379",
"Count": "2",
"Amount": "100"
},
{
"SEQ_NO": "8",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-555",
"BTYPE": "S",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000379",
"Count": "2",
"Amount": "100",
"SEQ_NO": "8",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-555",
"BTYPE": "S",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000400",
"Count": "3",
"Amount": "200"
}
]
Ожидаемый вывод
[
{
"SEQ_NO": "1",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-444",
"BTYPE": "A",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000379",
"Count": "2",
"Amount": "100"
},
{
"SEQ_NO": "8",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-555",
"BTYPE": "S",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000379",
"Count": "2",
"Amount": "100",
},
{
"SEQ_NO": "8",
"STORE_NUMBER": "3001",
"DC": "2018-10-08T16:31:36.0754167+02:00",
"BNO": "112233-555",
"BTYPE": "S",
"COUNT_NUMBER": "8934",
"REGISTRATION_NUMBER": "3334",
"Code": "000400",
"Count": "3",
"Amount": "200"
}
]
Плетение данных
%dw 1.0
%output application/java
%namespace ns0 http://schemas.org/2004/07/DummyServ
%namespace ns01 http://sampleorg.org/
---
(payload.ns01#GSBResponse.ns01#GSBResult.ns0#Counts.*ns0#GBCContent map ((payload01, indexofPayload01) -> {
(payload01.ns0#Values.*ns0#GBCV map ((payload02,indexofPayload02) -> {
SEQ_NO: payload01.ns0#SEQ_NO,
DC: payload01.ns0#DC,
BNO: payload01.ns0#BNO,
BTYPE: payload01.ns0#BTYPE,
TNO: payload01.ns0#TNO,
RNO: payload01.ns0#RNO,
Code: payload02.ns0#Code,
Count: payload02.ns0#Count,
Amount: payload02.ns0#Amount
}))
}))