Закатай губу обратно это

» ◄ 1 2 3 4 ... 32 33 34 ► Перейти

Перейти на стр....

Автор Сообщение DenisNew
Зарегистрирован: 03/03/2016 15:40:04
Сообщений: 3
Оффлайн
Коллеги, подскажите с чего начинать, как реализовать подключению к сервису? smaximaa
Зарегистрирован: 27/11/2015 10:08:51
Сообщений: 26
Оффлайн
Для начала ознакомьтесь с самой системой, поработайте в демо-версии. Далее изучите методы шлюза в викки, протестируете их (рекомендую программу SoapUI). Ну а дальше уже идёт работа в 1С: создаёте необходимые справочники, загружаете в них данные справочников Меркурия, сопоставляете uuid меркурия и 1с. Единственная сложная часть это обработка тела заявки, но тут уже написали как можно обойти эту проблему.

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 04/03/2016 09:13:01

[ICQ] DenisNew
Зарегистрирован: 03/03/2016 15:40:04
Сообщений: 3
Оффлайн
Спасибо, а никто не может выложить пример запроса submitApplicationRequest? Или как получить список продукции а то в справке этого нет

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 04/03/2016 14:16:01

smaximaa
Зарегистрирован: 27/11/2015 10:08:51
Сообщений: 26
Оффлайн
Пример запроса, 2 сообщение этой темы. А метод получения списка продукции ищите по ссылке:
http://help.vetrf.ru/images/d/dc/Product_service_requirements_1.1_v2.pdf

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 09/03/2016 11:30:37

[ICQ] DenisNew
Зарегистрирован: 03/03/2016 15:40:04
Сообщений: 3
Оффлайн

smaximaa wrote:Пример запроса, 2 сообщение этой темы. А метод получения списка продукции ищите по ссылке:
http://help.vetrf.ru/images/d/dc/Product_service_requirements_1.1_v2.pdf


да спасибо за наводку, там есть все, кроме как определять поле data с типом app:ApplicationDataWrapper, выше писали, что как то через дополнительно создаваемую фабрику, но пока что как это реализовать не удается... smaximaa
Зарегистрирован: 27/11/2015 10:08:51
Сообщений: 26
Оффлайн
DenisNew wrote:

smaximaa wrote:Пример запроса, 2 сообщение этой темы. А метод получения списка продукции ищите по ссылке:
http://help.vetrf.ru/images/d/dc/Product_service_requirements_1.1_v2.pdf


да спасибо за наводку, там есть все, кроме как определять поле data с типом app:ApplicationDataWrapper, выше писали, что как то через дополнительно создаваемую фабрику, но пока что как это реализовать не удается...
такого примера кода у меня нету( хотелось бы тоже его увидеть [ICQ] sayunot
Зарегистрирован: 05/02/2016 06:07:29
Сообщений: 4
Оффлайн
по многочисленным письмам, кидаю пример) дата актуальности - 7.02. как сейчас - не знаю, т.к. писал интеграцию по просьбе - написал, отдал, забыл)
итак:
1. добавляем в конфигу след. пакеты:
- http://api.vetrf.ru/schema/cdm/base
- http://api.vetrf.ru/schema/cdm/application
- http://api.vetrf.ru/schema/cdm/argus/common
- http://api.vetrf.ru/schema/cdm/ikar
- http://api.vetrf.ru/schema/cdm/cerberus/enterprise
- http://api.vetrf.ru/schema/cdm/argus/shipment
- http://api.vetrf.ru/schema/cdm/argus/production
- http://api.vetrf.ru/schema/cdm/mercury/vet-document
- http://api.vetrf.ru/schema/cdm/mercury/applications
- http://schemas.xmlsoap.org/soap/envelope/

2. в пакете http://api.vetrf.ru/schema/cdm/application типы ApplicationDataWrapper и ApplicationResultWrapper делаем открытыми

3. добавляем ws ссылку http://api.vetrf.ru/schema/platform/services/ApplicationManagementService_v1.2.wsdl

4. дальше комменты из обработки:
// получаем определение сервиса и берем из него фабрику // ВетисAPI = http://api.vetrf.ru/schema/platform/services/ApplicationManagementService_v1.2.wsdl ОпределениеWS = WSСсылки.ВетисAPI.ПолучитьWSОпределения(); // создаем врем. фабрику на основе пакетов из конфиги и web сервиса // нам нужны 2 пакета из ws, но пакет с application нужен локальный МассивURI = Новый Массив; МассивURI.Добавить("http://api.vetrf.ru/schema/cdm/application/ws-definitions"); МассивURI.Добавить("http://api.vetrf.ru/schema/cdm/base/ws-definitions"); ФабрикаWS = Новый ФабрикаXDTO(ОпределениеWS.ФабрикаXDTO.ЭкспортМоделиXDTO(МассивURI), ФабрикаXDTO.Пакеты); // добавим 2 пакета, которые нужны, но есть только локально Пакеты = Новый Массив; Пакеты.Добавить(ФабрикаXDTO.Пакеты.Получить("http://api.vetrf.ru/schema/cdm/mercury/applications")); Пакеты.Добавить(ФабрикаXDTO.Пакеты.Получить("http://schemas.xmlsoap.org/soap/envelope/")); Для Каждого Пакет Из ФабрикаWS.Пакеты Цикл Пакеты.Добавить(Пакет); КонецЦикла; // создаем общую фабрику ФабрикаXD = Новый ФабрикаXDTO(, Пакеты); // создаем пробный узел Меркурия, MercuryApplicationRequest. используем теста ради // в реальности на месте этого запроса может (и должен) быть любой другой из этого пакета MercRequestDO = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/mercury/applications", "MercuryApplicationRequest"); // я сразу инициализую все узлы объекта методом, что ниже, имхо там удобнее // ИнициализироватьОбъектXDTO(MercRequestDO, ФабрикаXD); // определяем свойства и их значения для заполнения. // можно, конечно, и напрямую указать для каждого свойства значение, // но т.к. запросы будут разные, проще для каждого составить свое соответствие // и использовать общий метод MercRequestPM = Новый Соответствие; MercRequestPM.Вставить("localTransactionId", вашID); MercRequestPM.Вставить("initiator/login", login); // тож мой локальный метод // ЗаполнитьСвойстваОбъектаXDTO(MercRequestDO, MercRequestPM); // создаем нужный запрос, инициализируем, заполняем свойства SubmitRequestDO = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "submitApplicationRequest"); ИнициализироватьОбъектXDTO(SubmitRequestDO, ФабрикаXD); SubmitRequestPM = Новый Соответствие; SubmitRequestPM.Вставить("apiKey", apiKey); SubmitRequestPM.Вставить("application/serviceId", "mercury-g2b.service"); SubmitRequestPM.Вставить("application/issuerId", issuerID); SubmitRequestPM.Вставить("application/issueDate", ТекущаяДата()); ЗаполнитьСвойстваОбъектаXDTO(SubmitRequestDO, SubmitRequestPM); // добавляем в блок data mercury request SubmitRequestDO.application.data.Добавить(ФормаXML.Элемент, MercRequestDO.Тип().URIПространстваИмен, "mercuryApplicationRequest", MercRequestDO); // создаем корневой узел, инициализируем EnvelopeDO = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Envelope"); ИнициализироватьОбъектXDTO(EnvelopeDO, ФабрикаXD); // добавляем submitApplicationRequest в блок body и готово!) EnvelopeDO.body.Добавить(ФормаXML.Элемент, SubmitRequestDO.Тип().URIПространстваИмен, "submitApplicationRequest", SubmitRequestDO); // получившийся объект можем выгружать во что угодно и передавать каким угодно способом, например, так: ТелоXML = Новый ЗаписьXML; ТелоXML.УстановитьСтроку("UTF-8"); ФабрикаXD.ЗаписатьXML(ТелоXML, EnvelopeDO); ЗапросWeb = Новый HTTPЗапрос("platform/services/ApplicationManagementService"); ЗапросWeb.УстановитьТелоИзСтроки(ТелоXML.Закрыть()); СоединениеWeb = Новый HTTPСоединение("api2.vetrf.ru", 8002, login, password,,Истина); ОтветWeb = СоединениеWeb.ОтправитьДляОбработки(ЗапросWeb); Если (ОтветWeb.КодСостояния = 200) Тогда // значит, все ок // десериализуем ОтветXML = Новый ЧтениеXML; ОтветXML.УстановитьСтроку(ОтветWeb.ПолучитьТелоКакСтроку("UTF-8")); MercAppDO = ФабрикаXD.ПрочитатьXML(ОтветXML, EnvelopeDO.Тип()).Body.submitApplicationResponse.application; // возможные статусы: // ACCEPTED Заявка принята. // IN_PROCESS Заявка обрабатывается. // COMPLETED Заявка успешно обработана. // REJECTED Заявка отклонена. Если (MercAppDO.status = "ACCEPTED") Тогда // тут шлем запрос на подтверждение КонецЕсли; КонецЕсли;

paouline
Зарегистрирован: 11/05/2016 10:03:40
Сообщений: 2
Оффлайн

sayunot wrote:по многочисленным письмам, кидаю пример) дата актуальности - 7.02. как сейчас - не знаю, т.к. писал интеграцию по просьбе - написал, отдал, забыл)


Спасибо огромное! Удалось воспроизвести и отправить заявку.

Наткнулась на подводный камень здесь:
ФабрикаXD.ЗаписатьXML(ТелоXML, EnvelopeDO);

1С сортирует реквизиты объекта EnvelopeDO в алфавитном порядке, и в XML записывает сначала Body, потом Header. В результате возвращается ошибка OWS-12028: Cannot add Header after Body. Нужно их местами в XML поменять. Как правильно сделать, я не придумала, поэтому просто в тексте готовой XML это недоразумение исправила.

vvche
Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 28
Оффлайн
А вот за циклическую ссылку BusinessEntity:activitylocation->Enterprise:owner->BusinessEntity разработчикам небольшой минус в карму lalex23
Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 220
Оффлайн
vvche wrote:А вот за циклическую ссылку BusinessEntity:activitylocation->Enterprise:owner->BusinessEntity разработчикам небольшой минус в карму
да нормально, я просто поставил проверку на уровень рекурсии и дальше 10 уровня при инициализации свойств - не проваливаюсь, этого вполне достаточно для любых запросов vvche
Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 28
Оффлайн
Я по другому выкрутился: сделал список обязательных для заполнения свойств, и инициализирую только их. vvche
Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 28
Оффлайн
/...мечтательно.../
А вот если бы еще список обязательных реквизитов не выковыривать в код ручками из вот таких простыней (help.vetrf.ru/wiki/TransportOperation), а получать, к примеру, из XSD...

(и закатал губу обратно...

lalex23
Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 220
Оффлайн

vvche wrote:Я по другому выкрутился: сделал список обязательных для заполнения свойств, и инициализирую только их.


Пришлось так же сделать, поскольку была высказана претензия по наличию большого количества пустых тегов в xml-запросе. paouline
Зарегистрирован: 11/05/2016 10:03:40
Сообщений: 2
Оффлайн
vvche wrote:/...мечтательно.../
А вот если бы еще список обязательных реквизитов не выковыривать в код ручками из вот таких простыней (help.vetrf.ru/wiki/TransportOperation), а получать, к примеру, из XSD...

(и закатал губу обратно...

Ещё бы в простынях ошибок не было - вообще красота Но вообще по ним работать оказалось удобно.

На чувствительность к регистру я выше уже ругалась, имхо серьёзная недоработка.

А в целом подружить 1С с Ветис.АПИ получилось, спасибо sayunot за образчик работающего кода.

vvche
Зарегистрирован: 13/06/2016 19:39:45
Сообщений: 28
Оффлайн
paouline wrote:

На чувствительность к регистру я выше уже ругалась, имхо серьёзная недоработка.

Java же, тут никуда не денешься )))

paouline wrote:
А в целом подружить 1С с Ветис.АПИ получилось, спасибо sayunot за образчик работающего кода.

И от нашей команды спасибо

Кстати, у меня объект Envelope не пересортировывает, пишет нормально, может от версии платформы 1С зависит?

» ◄ 1 2 3 4 ... 32 33 34 ► Перейти

Перейти на стр....

Перейти:  Выбрать форум Автоматизированная система АРГУС Автоматизированная система ВЕСТА Автоматизированная система МЕРКУРИЙ Автоматизированная система ЦЕРБЕР Автоматизированная система СИРАНО Автоматизированная система АССОЛЬ Форум ВЕТИС  


Powered by JForum 2.1.8 © JForum Team
Источник: http://www.fsvps.ru/vetrf-forum/posts/list/30/6955.page

Закрыть ... [X]

Фразеология - Раскатать губу происхождение поговорки К чему вскочил прыщ под носом примета



Закатай губу обратно это Закатай губу - это. Что такое закатай губу?
Закатай губу обратно это Россия погасила последний долг СССР
Закатай губу обратно это Закатать губу - Очень по-русски
Закатай губу обратно это Re:Интеграция с 1С
Закатай губу обратно это 9 лучших восковых полосок для депиляции - Рейтинг 2016 (топ 9)
Закатай губу обратно это Toscana Ecco кожа Коляски Bebe-mobile. Официальный
Закатай губу обратно это Анальные бахромки: причины, симптомы, диагностика и лечение
Закатай губу обратно это Более 10 лучших идей на тему «Свадебные подвязки» на
Закатай губу обратно это Бохо вязание Записи в рубрике Бохо вязание
Дизайн ногтей Мармелад: фото вкусного маникюра Интернет-магазин для беременных в Киеве. Купить товары для Как укладывать широкий ламинат или ламинат под плитку Консультации онлайн, Ринопластика, Стайсупов В.Ю. - пластический Кривые зубы у детей причины и способы борьбы с Омск - Переезд в другой город Подготовка к ЕГЭ по русскому языку. Примеры аргументов к