Разбор ответа jdbc в скрипте Groovy (до максимального значения номера строки) - PullRequest
0 голосов
/ 11 декабря 2018

Я использую запрос JDBC в ReadyAPI 2.5.0 для извлечения данных из нашей базы данных.Что мне нужно сделать, так это перебрать все возвращаемые строки и выбрать конкретные значения для использования в моем запросе SOAP позже.

Как использовать скрипт Groovy для получения ответа JDBC и прохождения циклапока все строки не были прочитаны?Обратите внимание, что ответ JDBC будет возвращать динамический набор результатов каждый раз, поэтому его важно зацикливать до тех пор, пока не будут обработаны все строки.

Я включил пример ответа JDBC, для которого нам необходимо извлечь значения, т.е. UNIQUEID иROUTEID, используя скрипт Groovy и передайте его в мой SOAP-запрос.


<Results>
   <ResultSet fetchSize="128">
      <Row rowNumber="1">
         <UNIQUEID>80382049</UNIQUEID>
         <SOURCESYSTEM>HitsSC</SOURCESYSTEM>
         <ROUTEID>39812</ROUTEID>
         <SHIFTDATE>2018-12-07 00:00:00.0</SHIFTDATE>
      </Row>
      <Row rowNumber="2">
         <UNIQUEID>80382096</UNIQUEID>
         <SOURCESYSTEM>NTExchange</SOURCESYSTEM>
         <ROUTEID>39812</ROUTEID>
         <SHIFTDATE>2018-12-07 00:00:00.0</SHIFTDATE>
      </Row>
      <Row rowNumber="3">
         <UNIQUEID>80382097</UNIQUEID>
         <SOURCESYSTEM>NTExchange</SOURCESYSTEM>
         <ROUTEID>39812</ROUTEID>
         <SHIFTDATE>2018-12-07 00:00:00.0</SHIFTDATE>
      </Row>
      <Row rowNumber="4">
         <UNIQUEID>80382098</UNIQUEID>
         <SOURCESYSTEM>NTExchange</SOURCESYSTEM>
         <ROUTEID>39812</ROUTEID>
         <SHIFTDATE>2018-12-07 00:00:00.0</SHIFTDATE>
      </Row>
   </ResultSet>
</Results>

1 Ответ

0 голосов
/ 12 декабря 2018

Вы не указали критерии, поэтому я сделал это, чтобы циклически проходить по всем строкам и выбирать строки, где SOURCESYSTEM = "NTExchange".

Вам потребуется извлечь XML-ответ JDBC в xmlResponse.и затем добавьте скрипт после этого.

После того, как вы внесли свои изменения, вы можете удалить строки log.info.

После запуска скрипта у вас будет HashMapс парами UNIQUEID - ROUTEID.

def jdbcResult =  new XmlSlurper().parseText(xmlResponse)
def result = new java.util.HashMap<String,String>()
for (def row : jdbcResult.ResultSet.Row) {
    log.info "Looking at row entry with unique id : " + row.UNIQUEID
    if (row.SOURCESYSTEM.equals("NTExchange")) {
        result.put(row.UNIQUEID, row.ROUTEID)
        log.info "Entry added"
    }
    else {
        log.info "Entry skipped"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...