|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Автоматизированная система ИКАР. интеграция  XML
Индекс форума » Форум ВЕТИС
Автор Сообщение
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

v.isaev


Зарегистрирован: 04/04/2017 13:29:33
Сообщений: 81
Оффлайн

Все корректно на тесте - 251 возвращается в ответе

tiger


Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн

протестировал ошибку с трассировщиком траффика, ошибка присутствует.
прошу посмотреть на приложенные файлы.
проверял в трех вариантах запрос с различными значениями count и offset
во всех случаях возвращает один и тот же ответ с данными "count=100 offset=0 total=251."
[Thumb - Снимок экрана от 2017-08-10 10-44-23.png]
 Имя файла Снимок экрана от 2017-08-10 10-44-23.png [Disk] Загрузить
 Описание count=100 offset=100
 Размер файла 46 Kbytes
 Скачано:  875 раз

[Thumb - Снимок экрана от 2017-08-10 10-47-37.png]
 Имя файла Снимок экрана от 2017-08-10 10-47-37.png [Disk] Загрузить
 Описание count=1000 offset=0
 Размер файла 43 Kbytes
 Скачано:  901 раз

[Thumb - Снимок экрана от 2017-08-10 10-43-25.png]
 Имя файла Снимок экрана от 2017-08-10 10-43-25.png [Disk] Загрузить
 Описание count=100 offset=0
 Размер файла 44 Kbytes
 Скачано:  866 раз

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 10/08/2017 08:55:36

v.isaev


Зарегистрирован: 04/04/2017 13:29:33
Сообщений: 81
Оффлайн

Не уверен, но, возможно, это ограничения вашей программы, на которой производите тестирование.
Попробуйте протестировать в SoapUI, как вариант

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 10/08/2017 09:04:18

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 из запроса.
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", это может влиять?
tiger


Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн

нет это не влияет. для чистоты эксперимента сделал запрос строго по вашему примеру
[Thumb - Снимок экрана от 2017-08-10 12-01-31.png]
 Имя файла Снимок экрана от 2017-08-10 12-01-31.png [Disk] Загрузить
 Описание
 Размер файла 86 Kbytes
 Скачано:  919 раз

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

tiger


Зарегистрирован: 07/08/2017 14:59:36
Сообщений: 8
От: Александр
Оффлайн

Спасибо большое за помощь.
Ошибка возникает на уровне импорта WSDL для IKAR.
Для интеграции используется Borland® Delphi® 2006 Version 10.0.2558.35231 Update 2

пока разобраться в чем именно причина не получилось. как только будет конкретное решение, отпишусь сюда.
Alex_leradata


Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн

Почему сервер на запрос:"Вывести все странны" GetAllCountryList($param) возвращает только 100 позиций.
[count] => 100 [total] => 251 [offset] => 0
Причём, если я прошу вывести 1 страну выводит 100???
Кто ни будь сталкивался с такой проблемой...
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

[Thumb - Снимок экрана от 2017-08-14 15-33-43.png]
 Имя файла Снимок экрана от 2017-08-14 15-33-43.png [Disk] Загрузить
 Описание ОШИБОЧНЫЙ запрос на основе WSDL собранный с помощью IDE Delphi.WSDL.Importer
 Размер файла 13 Kbytes
 Скачано:  931 раз

[Thumb - Снимок экрана от 2017-08-14 15-42-40.png]
 Имя файла Снимок экрана от 2017-08-14 15-42-40.png [Disk] Загрузить
 Описание WSDL: объявление параметров процедуры GetAllCountryList
 Размер файла 61 Kbytes
 Скачано:  848 раз

[Thumb - Снимок экрана от 2017-08-14 15-43-59.png]
 Имя файла Снимок экрана от 2017-08-14 15-43-59.png [Disk] Загрузить
 Описание WSDL: Объявление процедуры GetAllCountryList
 Размер файла 89 Kbytes
 Скачано:  916 раз

Это сообщение было редактировано 3 раз. Последнее обновление произошло в 15/08/2017 15:38:20

Alex_leradata


Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн

Спасибо за ответ
То есть, сейчас, при вызове функции getAllCountryList будет одно и тоже возвращать -Это баг у них?
Когда устранять не известно???
Alex_leradata


Зарегистрирован: 31/07/2017 12:21:55
Сообщений: 3
Оффлайн

Пришлось формировать запрос к серверу для вызова функции "GetAllCountryList" вручную. Почему то, стандартными средствами SOAP, эта функция неправильно вызывается. Причём с другими функциями, например "GetCountryByGuid" SOAP отлично отрабатывает.
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

Vesta_IT


Зарегистрирован: 16/09/2017 15:07:38
Сообщений: 61
Оффлайн

А как вы строите систему справочников адресных в своих УС - один иерархический или отдельно справочник стран, отдельно городов и т.п.?
 
Индекс форума » Форум ВЕТИС
Перейти:   

Powered by JForum 2.1.8 © JForum Team