Автор |
Сообщение |
07/08/2017 15:23:48
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
При внедрении вылезла возможная ошибка, просьба проверить.
на тестовой версии обмена через сервис https://api2.vetrf.ru:8002/platform/ikar/services/IkarService (версия АПИ 1.4)
при запросе метода GetAllCountryList вне зависимости от указнных значений "count" и "offset" всегда возвращаются первые сто записей из возможных total=251.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 08/08/2017 06:37:17
|
|
|
09/08/2017 17:50:00
|
v.isaev
Зарегистрирован: 04/04/2017 13:29:33
Сообщений: 81
Оффлайн
|
Все корректно на тесте - 251 возвращается в ответе
|
|
|
10/08/2017 08:55:06
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
протестировал ошибку с трассировщиком траффика, ошибка присутствует.
прошу посмотреть на приложенные файлы.
проверял в трех вариантах запрос с различными значениями count и offset
во всех случаях возвращает один и тот же ответ с данными "count=100 offset=0 total=251."
|
Имя файла |
Снимок экрана от 2017-08-10 10-44-23.png |
Загрузить
|
Описание |
count=100 offset=100 |
Размер файла |
46 Kbytes
|
Скачано: |
875 раз |
|
Имя файла |
Снимок экрана от 2017-08-10 10-47-37.png |
Загрузить
|
Описание |
count=1000 offset=0 |
Размер файла |
43 Kbytes
|
Скачано: |
901 раз |
|
Имя файла |
Снимок экрана от 2017-08-10 10-43-25.png |
Загрузить
|
Описание |
count=100 offset=0 |
Размер файла |
44 Kbytes
|
Скачано: |
866 раз |
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 10/08/2017 08:55:36
|
|
|
10/08/2017 09:03:41
|
v.isaev
Зарегистрирован: 04/04/2017 13:29:33
Сообщений: 81
Оффлайн
|
Не уверен, но, возможно, это ограничения вашей программы, на которой производите тестирование.
Попробуйте протестировать в SoapUI, как вариант
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 10/08/2017 09:04:18
|
|
|
10/08/2017 09:14:55
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
это не ограничение нашей программы, трассировщик стоит между нами.
при этом проверил на другой процедуре, а именно "https://api2.vetrf.ru:8002/platform/services//getUnitListRequest" - на ней все работает корректно
похоже, что на стороне сервиса в процедуре формирования ответа по запросу "https://api2.vetrf.ru:8002/platform/ikar/services/IkarService/getAllCountryListRequest" стоят константы и игнорируются значения count и offset из запроса.
|
|
|
10/08/2017 09:54:30
|
nsnt
Зарегистрирован: 31/05/2017 09:06:10
Сообщений: 242
Оффлайн
|
На принтскринах listOptions xmlns:bs="http://api.vetrf.ru/schema/cdm/ikar/ws-definitions", а в образце xmlns:bs="http://api.vetrf.ru/schema/cdm/base", это может влиять?
|
|
|
10/08/2017 10:02:17
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
нет это не влияет. для чистоты эксперимента сделал запрос строго по вашему примеру
|
Имя файла |
Снимок экрана от 2017-08-10 12-01-31.png |
Загрузить
|
Описание |
|
Размер файла |
86 Kbytes
|
Скачано: |
920 раз |
|
|
|
10/08/2017 10:07:51
|
nsnt
Зарегистрирован: 31/05/2017 09:06:10
Сообщений: 242
Оффлайн
|
tiger wrote:нет это не влияет. для чистоты эксперимента сделал запрос строго по вашему примеру
На принтскрине осталось, как было: listOptions xmlns:bs="http://api.vetrf.ru/schema/cdm/ikar/ws-definitions".
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 10/08/2017 10:27:11
|
|
|
10/08/2017 16:43:44
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
Спасибо большое за помощь.
Ошибка возникает на уровне импорта WSDL для IKAR.
Для интеграции используется Borland® Delphi® 2006 Version 10.0.2558.35231 Update 2
пока разобраться в чем именно причина не получилось. как только будет конкретное решение, отпишусь сюда.
|
|
|
15/08/2017 14:36:10
|
Alex_leradata
Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн
|
Почему сервер на запрос:"Вывести все странны" GetAllCountryList($param) возвращает только 100 позиций.
[count] => 100 [total] => 251 [offset] => 0
Причём, если я прошу вывести 1 страну выводит 100???
Кто ни будь сталкивался с такой проблемой...
|
|
|
15/08/2017 15:22:10
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
есть проблема с описанием WSDL сервиса ИКАР по ссылке http://api.vetrf.ru/schema/platform/ikar/services/IkarService_v1.4_pilot.wsdl
возможно из-за следующего:
для процедуры GetAllCountryList описание входящего параметра объявлено как getAllCountryListRequest
----------------------------------
<WL5G3N0:message name="GetAllCountryList">
<WL5G3N0:part element="WL5G3N5:getAllCountryListRequest" name="request"/>
</WL5G3N0:message>
----------------------------------
а в процедуре как allCountryList
---------------------------------------------------------------------------
<WL5G3N0:portType name="IkarServicePortType">
<WL5G3N0:operation name="GetAllCountryList">
<WL5G3N0:input message="WL5G3N7:GetAllCountryList" name="allCountryList">
</WL5G3N0:input>
<WL5G3N0:output message="WL5G3N7:GetAllCountryListResponse" name="allCountryListResponse">
</WL5G3N0:output>
<WL5G3N0:fault message="WL5G3N7:InternalServiceFault" name="internalServiceFault">
<WL5G3N0:documentation>Внутренняя ошибка выполнения операции на
сервере.
</WL5G3N0:documentation>
</WL5G3N0:fault>
<WL5G3N0:fault message="WL5G3N7:IncorrectRequestFault" name="incorrectRequestFault">
<WL5G3N0:documentation>Реакция системы на некорректный запрос.
</WL5G3N0:documentation>
</WL5G3N0:fault>
<WL5G3N0:fault message="WL5G3N7:OffsetOutOfRangeFault" name="offsetOutOfRangeFault">
<WL5G3N0:documentation>Отступ в параметрах запроса превышает число
записей удовлетворяющих условиям запроса.
</WL5G3N0:documentation>
</WL5G3N0:fault>
</WL5G3N0:operation>
---------------------------------------------------------------------------
предполагаю, что при формировании SOAP запроса тег трансформируется в <GetAllCountryList xmlns="http://api.vetrf.ru/schema/cdm/registry/service">
по факту запрос должен быть таким (давался тех.поддержкой) во втором сообщении этой темы:
======================================================
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.vetrf.ru/schema/cdm/ikar/ws-definitions" xmlns:base="http://api.vetrf.ru/schema/cdm/base">
<soapenv:Header/>
<soapenv:Body>
<ws:getAllCountryListRequest>
<!--Optional:-->
<base:listOptions>
<!--Optional:-->
<base:count>1000</base:count>
<!--Optional:-->
<base:offset>0</base:offset>
</base:listOptions>
</ws:getAllCountryListRequest>
</soapenv:Body>
</soapenv:Envelope>
=====================================================
пока возможна только подмена запроса перед отправкой в SOAP сервис
так же есть проблемы с описанием следующих процедур (во всех случаях не найдено описание входящего параметра) сервиса ИКАР, из-за чего они не загружаются
GetCountryByGuid
GetCountryByUuid
GetCountryChangesList
GetRegionListByCountry
GetRegionByGuid
GetRegionByUuid
GetRegionChangesList
GetDistrictListByRegion
GetDistrictByGuid
GetDistrictChangesList
GetLocalityListByRegion
GetLocalityListByDistrict
GetLocalityListByLocality
GetStreetListByLocality
FindLocalityListByName
FindStreetListByName
|
Имя файла |
Снимок экрана от 2017-08-14 15-33-43.png |
Загрузить
|
Описание |
ОШИБОЧНЫЙ запрос на основе WSDL собранный с помощью IDE Delphi.WSDL.Importer |
Размер файла |
13 Kbytes
|
Скачано: |
931 раз |
|
Имя файла |
Снимок экрана от 2017-08-14 15-42-40.png |
Загрузить
|
Описание |
WSDL: объявление параметров процедуры GetAllCountryList |
Размер файла |
61 Kbytes
|
Скачано: |
848 раз |
|
Имя файла |
Снимок экрана от 2017-08-14 15-43-59.png |
Загрузить
|
Описание |
WSDL: Объявление процедуры GetAllCountryList |
Размер файла |
89 Kbytes
|
Скачано: |
916 раз |
Это сообщение было редактировано 3 раз. Последнее обновление произошло в 15/08/2017 15:38:20
|
|
|
15/08/2017 15:33:11
|
Alex_leradata
Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн
|
Спасибо за ответ
То есть, сейчас, при вызове функции getAllCountryList будет одно и тоже возвращать -Это баг у них?
Когда устранять не известно???
|
|
|
16/08/2017 10:22:51
|
Alex_leradata
Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн
|
Пришлось формировать запрос к серверу для вызова функции "GetAllCountryList" вручную. Почему то, стандартными средствами SOAP, эта функция неправильно вызывается. Причём с другими функциями, например "GetCountryByGuid" SOAP отлично отрабатывает.
|
|
|
16/10/2017 11:02:26
|
tiger
Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн
|
С переходом на 2 версию, похоже опять что=то сломалось. Запросы к IkarService возвращаются с ошибкой "'BEA-382513: OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items'"
адрес сервиса http://api.vetrf.ru/schema/platform/services/2.0-RC-last/IkarService_v2.0_pilot.wsdl
Формируемый запрос:
'<?xml version="1.0"?>'#$D#$A'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><GetAllCountryList xmlns="http://api.vetrf.ru/schema/cdm/registry/ikar/service/v2"><bs:listOptions xmlns:bs="http://api.vetrf.ru/schema/cdm/registry/ikar/service/v2"><count xmlns="http://api.vetrf.ru/schema/cdm/base">100</count><offset xmlns="http://api.vetrf.ru/schema/cdm/base">0</offset></bs:listOptions></GetAllCountryList></SOAP-ENV:Body></SOAP-ENV:Envelope>'#$D#$A
прошу подсказать пример рабочего SOAP запроса для метода getAllCountryListReques
|
|
|
16/10/2017 12:36:48
|
Vesta_IT
Зарегистрирован: 16/09/2017 15:07:38
Сообщений: 61
Оффлайн
|
А как вы строите систему справочников адресных в своих УС - один иерархический или отдельно справочник стран, отдельно городов и т.п.?
|
|
|
|