внутренняя система дает мне SOAP API с разбиением на страницы.Мне нужно получить все данные из этого API и затем обработать результаты.
Ответ выглядит следующим образом:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="xxx">
<SOAP-ENV:Body>
<ns1:GetArticles>
<ns1:request>
<ns1:IterationConstraints>
<ns1:BlockSize>50</ns1:BlockSize>
<ns1:BlockIndex>0</ns1:BlockIndex>
<ns1:IterationId/>
</ns1:IterationConstraints>
<ns1:RequestPriority>PRIORITY_ID_FILTER</ns1:RequestPriority>
<ns1:PriceBranchId/>
<ns1:ResponseDetails>INCLUDE_BRANCH_INFO</ns1:ResponseDetails>
<ns1:ChangedSinceDate>2019-07-09T00:00:00.000+02:00</ns1:ChangedSinceDate>
</ns1:request>
</ns1:GetArticles>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Этот ответ дает мне что-то вроде этого:
[...]
<IterationStatus>
<IterationId>ArticleRequest_de17201d-5fcd-4d93-8ecf-1977f60f32fa</IterationId>
<MaxCount>767</MaxCount>
<Count>50</Count>
<RequestedBlockIndex>0</RequestedBlockIndex>
<RequestedBlockSize>50</RequestedBlockSize>
<IterationInfo>F4R returned (50) Articles.</IterationInfo>
</IterationStatus>
[...]
Теперь мне нужно добавить IterationId к моему запросу, увеличить BlockIndex на единицу и снова вызывать до тех пор, пока счетчик не станет равен 0
Как это может сделать Pentaho?