Прошу помочь решить следующую проблему. Необходимо сформировать SOAP-запрос на веб-сервис. Требуемая структура xml-сообщения следующая:
<soap:Body>
<GetFNVRData xmlns="http://localhost/">
<WSProxyUserName>string</WSProxyUserName>
<WSProxyPassword>string</WSProxyPassword>
<FNVRData>
<FNVRDataRow>
<ID_CALC_SET>decimal</ID_CALC_SET>
<ID_BRANCH>string</ID_BRANCH>
</FNVRDataRow>
<FNVRDataRow>
<ID_CALC_SET>decimal</ID_CALC_SET>
<ID_BRANCH>string</ID_BRANCH>
</FNVRDataRow>
</FNVRData>
</GetFNVRData>
</soap:Body>
Как видите, можно (и нужно) отправить несколько строк озаглавленных одинаковым "тегом" - <FNVRDataRow>. Для генерации запроса я пользуюсь удобным модулем SOAP::WSDL, который даёт возможность передать на веб-сервис необходимый набор параметров через метод call. Сам набор параметров реализуется через конструкцию из хэшей, воспроизводящую структуру вышеуказанного xml-сообщения. Здесь то и появляется проблема - я не могу создать хэш с одинаковыми ключами 'FNVRDataRow'.
<soap:Body>
<GetFNVRData xmlns="http://localhost/">
<WSProxyUserName>string</WSProxyUserName>
<WSProxyPassword>string</WSProxyPassword>
<FNVRData>
<FNVRDataRow>
<ID_CALC_SET>decimal</ID_CALC_SET>
<ID_BRANCH>string</ID_BRANCH>
</FNVRDataRow>
<FNVRDataRow>
<ID_CALC_SET>decimal</ID_CALC_SET>
<ID_BRANCH>string</ID_BRANCH>
</FNVRDataRow>
</FNVRData>
</GetFNVRData>
</soap:Body>
Как видите, можно (и нужно) отправить несколько строк озаглавленных одинаковым "тегом" - <FNVRDataRow>. Для генерации запроса я пользуюсь удобным модулем SOAP::WSDL, который даёт возможность передать на веб-сервис необходимый набор параметров через метод call. Сам набор параметров реализуется через конструкцию из хэшей, воспроизводящую структуру вышеуказанного xml-сообщения. Здесь то и появляется проблема - я не могу создать хэш с одинаковыми ключами 'FNVRDataRow'.