|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Меркурий + Delphi  XML
Индекс форума » Автоматизированная система МЕРКУРИЙ
Автор Сообщение
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Народ, привет!

Предлагаю делфистам тут делиться проблемами и решениями.
Если кто не в курсе с чего начать вот статья про wsdl
http://www.delphimaster.ru/articles/web_delphi/index3.html
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Сразу начну с проблемы которую пытаюсь решить.
Загружаю ams_mercury_g2b.service_v2.1_pilot.wsdl с
http://help.vetrf.ru/wiki/%D0%92%D0%B5%D1%82%D0%B8%D1%81.API
пытаюсь импортировать интерфейсы, пишет вот такую загогулину
https://ibb.co/mSqOf8

т.е. нужен "mercury-g2b.service_v2.1.wsdl"
нахожу ссылку http://api.vetrf.ru/schema/platform/services/2.1-last/mercury-g2b.service_v2.1.wsdl
на зависимость на ветисАпи, но она "404 Not Found".

Админы, что делать?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/06/2018 10:21:03

Владимир Игнатов


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

Посмотрите по форуму, несколько тем про дельфи уже есть. Даже готовый проект им. start'a есть, берите-пробуйте.
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Владимир Игнатов wrote:Посмотрите по форуму, несколько тем про дельфи уже есть. Даже готовый проект им. start'a есть, берите-пробуйте.


Почитал, спасибо за инфу!
Однако мой вопрос актуален, зависимые ВСДЛ не скачиваются, пишет "404 Not Found"
Владимир Игнатов


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

oazis wrote:Однако мой вопрос актуален, зависимые ВСДЛ не скачиваются, пишет "404 Not Found"

Не останавливайтесь на достигнутом, читайте дальше всю эту стену плача, по недоразумению называемую неграмотными домохозяйками "форумом Меркурия", здесь представлен весь спектр мнений, от руководящего "все работает, кто хотел - сделал, остальные - нерадивые и ленивые" и до вселенских стонов разработчиков и пользователей "ничего нормально не работает, все плохо, одни ошибки, вчера хоть плохо, но работало, сегодня не работает вовсе". Вчитывайтесь, вникайте!
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

вобчем остановился на "ams-mercury-g2b.service_v2.0_pilot.wsdl"
по ней зависимости скачиваются.
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

децол протупил что типы не определены, в модуле интерфейсов, потом сообразил что не Пушкину же за меня это делать.
Переопределил на WideString .
Сижу жду когда бухи разродятся доступом к АПИ.
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Народ, всем привет. Понимаю что тема заезжена, но может кому пригодится, да и я может что спрошу когда.
Вобщем думал отстали от меня по меркурию, ан нет, пришлось гальванизировать трупик.

Начал с того что поставил RAD 10.2, до того (год назад) пользовался Delphi 7, но как говорят там криво работает
Зашел в "component", "импорт wsdl" и загрузил всё что есть по ссылке с офф-сайта АПИ 2.0
Для начала пишу загрузку справочников. Взял модуль DictionaryService_v2 и немного подпилил его для упрощения работы.
Жестко зашил логин пароль и приделал обработчик для РИО в функции
GetDictionaryServicePortType

было:


стало:


далее сами обработчики, для контроля обмена XML, расположены в основной форме:

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 21/05/2019 12:50:38

oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Запрос ед.изм. GetUnitChangesList

oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

возвращаюсь к теме
запрос продукта по его GUID
хохма в том что на сайте написано
Операция GetProductByGuid предназначена для получения актуальной версии записи продукции по её глобальному идентификатору

что вводит в заблуждение. Почитав исходники нашел что сам товар надо грузить функцией GetProductItemByGuid

serg882


Зарегистрирован: 26/10/2017 11:52:09
Сообщений: 147
Оффлайн

oazis wrote:возвращаюсь к теме
запрос продукта по его GUID
хохма в том что на сайте написано
Операция GetProductByGuid предназначена для получения актуальной версии записи продукции по её глобальному идентификатору

что вводит в заблуждение. Почитав исходники нашел что сам товар надо грузить функцией GetProductItemByGuid



В Меркурии есть тип продукта (1 уровень), продукт (2 уровень), субпродукт (3 уровень) и номенклатура производителей (4 уровень номенклатуры). Для каждого уровня свой запрос (кроме 1 уровня).
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

Ну вот, добрался я и до сложного. Для начала решил сделать getVetDocumentListRequest, но какая то хрень, то ли руки у меня кривые, то ли дельфа не вкуривает ВСДЛ правильно.
Но не понимаю как в обертку submitApplicationRequest передать getVetDocumentListRequest. В примерах видел прямое присвоение
типа такого


Но в моем ВСДЛ getVetDocumentListRequest не является членом ApplicationDataWrapper

Скажу прямо, подзатрахался, и решил для начала просто грузануть готовый XML. Для этого, чтоб не ломать общий подход, решил влезть в RIO
и подсунуть свой XML на момент передачи штатно созданного.

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



Самое обидное что в МС Студио ВСДЛ въезжает более корректно. Но блин нет сил вникать в подробности разработки на C#.

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 31/05/2019 18:12:55

oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

serg882 wrote:
oazis wrote:возвращаюсь к теме
запрос продукта по его GUID
хохма в том что на сайте написано
Операция GetProductByGuid предназначена для получения актуальной версии записи продукции по её глобальному идентификатору

что вводит в заблуждение. Почитав исходники нашел что сам товар надо грузить функцией GetProductItemByGuid



В Меркурии есть тип продукта (1 уровень), продукт (2 уровень), субпродукт (3 уровень) и номенклатура производителей (4 уровень номенклатуры). Для каждого уровня свой запрос (кроме 1 уровня).


Спасибо камрад!!! , просто у меня некому проконсультировать, я сам себе и постановщик задачи и кодер и ещё должен во всей ветеринарии разобраться ...
user100000


Зарегистрирован: 05/06/2018 08:26:50
Сообщений: 163
Оффлайн

на d7 проще вручную xml нарисовать, чем с soap разбираться
oazis


Зарегистрирован: 05/06/2018 09:35:05
Сообщений: 53
Оффлайн

"я стар, я очень стар, я просто СУПЕР СТАР!!! шутка конечно ..." (с) Гоблин

Короче, у меня получилось запихнуть ручной сложный XML запрос, почти с первого разу

создал глобальный slRequest : TStringList;
пихаю в него вручную запрос типа как в примере http://help.vetrf.ru/wiki/GetVetDocumentListOperationForVetControl#.D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82_getVetDocumentListRequest .
В RioBeforeExecute проверяю не пустой ли slRequest и подсовываю вместо штатного, как описано выше ....
запрос ушел без ошибки, получил applicationId.
После обеда запрошу ответ ...

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 03/06/2019 11:43:29

 
Индекс форума » Автоматизированная система МЕРКУРИЙ
Перейти:   

Powered by JForum 2.1.8 © JForum Team