|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Ошибка при разборе входящего ВСД (от шлюза)  XML
Индекс форума » Форум ВЕТИС
Автор Сообщение
Garland


Зарегистрирован: 08/09/2017 10:02:49
Сообщений: 25
Оффлайн

Столкнулся с такой проблемой:
1) получаю через шлюз Ветис.API список входящих ВСД
2) пытаюсь их разобрать в соответствии со схемой http://api.vetrf.ru/schema/cdm/mercury/vet-document
3) получаю ошибку!
Ошибка проверки данных XDTO: ... не соответствует простому типу: {http://api.vetrf.ru/schema/cdm/base}String255
Несоответствие фасету MaxLength = '255'

Начинаю разбираться - оказывается поставщик в веб интерфейсе Меркурия может внести в поле "specialMarks" простыню абсолютно любой длины, а шлюз и xsd схемы допускают только тип "string255"

Вот какой "альтернативно одаренный" программист делал этот Меркурий и шлюз? Почему схемы данных веб-интерфейса не соответствуют шлюзу?
И как собственно внедрять Ветис.API, если даже список входящих ВСД получить невозможно?

Кто еще сталкивался с похожей проблемой?
mevgenym


Зарегистрирован: 19/05/2017 14:03:42
Сообщений: 312
Оффлайн

все так и есть, преодолевается костылями, разрабов не дождаться, добро пожаловать в мрак
https://github.com/mevgenym/1c_vetis.api_v1.1
https://github.com/mevgenym/1c_vetis.api
Garland


Зарегистрирован: 08/09/2017 10:02:49
Сообщений: 25
Оффлайн

Не поделитесь идеей, какой костыль использовать?
mevgenym


Зарегистрирован: 19/05/2017 14:03:42
Сообщений: 312
Оффлайн

обходить свойства искать где неправильное значение, в типовых есть процедуры вроде ПреобразоватьПроизвольныйОбъектXDTOВОбъектXDTO
или преобразовать в структуру
https://github.com/mevgenym/1c_vetis.api_v1.1
https://github.com/mevgenym/1c_vetis.api
Garland


Зарегистрирован: 08/09/2017 10:02:49
Сообщений: 25
Оффлайн

А что делать например с адресом предприятия?
Вот пришел в адресе guid для поля district "b78a1150-21ba-11e3-8f90-50e549251629"

При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://api.vetrf.ru/schema/cdm/registry/service}:IkarServiceBindingQSService:GetDistrictByGuid()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Requested entity not found

Вот как вообще можно так испохабить нормальный КЛАДР...
Garland


Зарегистрирован: 08/09/2017 10:02:49
Сообщений: 25
Оффлайн

А вот еще из веселого:
даже попытка получить площадку через шлюз приводит к краху

GetEnterpriseByGuid(5351519f-af55-bbb3-2b17-3962f1a82150)
hawksib

[Avatar]

Зарегистрирован: 04/08/2017 08:44:20
Сообщений: 179
Оффлайн

Garland wrote:А вот еще из веселого:
даже попытка получить площадку через шлюз приводит к краху

GetEnterpriseByGuid(5351519f-af55-bbb3-2b17-3962f1a82150)


такому?

Встроенный язык: Ошибка передачи переменной: При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://api.vetrf.ru/schema/cdm/registry/service}:EnterpriseServiceBindingQSService:GetEnterpriseByGuid(): При вызове веб-сервиса произошла ошибка. Аутентификация пользователя не выполнена.

Error 401--Unauthorized
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.4.2 401 Unauthorized
The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity MAY include relevant diagnostic information. HTTP access authentication is explained in section 11.

по причине:
Аутентификация пользователя не выполнена.

что это за площадка? дайте инн хс, попробую проверить
Garland


Зарегистрирован: 08/09/2017 10:02:49
Сообщений: 25
Оффлайн

У вас ошибка авторизации. Попробуйте проверить все настройки типа адреса сервера, логина и пароля пользователя.
У меня была похожая ситуация, когда я после тестового сервера переходил на продуктив.

В данном случае возникает ошибка:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://api.vetrf.ru/schema/cdm/registry/service}:EnterpriseServiceBindingQSService:GetEnterpriseByGuid()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка проверки данных XDTO:
Значение: 'Производство мясопродуктов (полуфабрикатов). Убой КРС, разделка, производство мяса говядины в полутушах и четвертинах, производство жилованного блочного мяса говядины замороженного, производство субпродуктов говяжьих, производство полуфабрикатов мясных натуральных, жира-сырца животного. Хранение продукции животного происхождения.' не соответствует простому типу: {http://api.vetrf.ru/schema/cdm/base}String255
Несоответствие фасету MaxLength = '255'

А GUID этот пришел вместе с каким-то товаром от поставщика (поле "producerList")
В веб интерфейсе Меркурия показывается - ОАО “Березовский мясоконсервный комбинат” (Беларусь, Брестская область), номер в реестре BY415457
hawksib

[Avatar]

Зарегистрирован: 04/08/2017 08:44:20
Сообщений: 179
Оффлайн

действительно, перед авторизацией процедуры вызвал, воспроизвел вашу ошибку, я думаю это какие-нибудь пережитки прошлого, допустим, когда-то раньше описание типов позволяло хранить значение больше 255 символов, его туда записали и с тех пор оно осталось в системе, а новые фабрики с ними работать не могут
 
Индекс форума » Форум ВЕТИС
Перейти:   

Powered by JForum 2.1.8 © JForum Team