|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Сообщения, отправленные пользователем: esteem
Индекс форума » Профиль для esteem » Сообщения, отправленные пользователем esteem
Автор Сообщение
ksu66 wrote:добрый день просьба разобраться с обменом с Меркурием, жно вопрос. Хочу получить список предприятий чтобы узнай guid нашей фирмы. согласно документации формирую запрос через сервис Цербер (EnterpriseService) операция GetRussianEnterpriseList, отправляю запрос, но в ответ получаю тот же самый текст, что и послал.Что не так? текст процедуры ниже. текст запроса формируется вроде нормально (как в документации).буду очень признателен за ответ.

это текст запроса

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlnss="http://www.w3.org/2001/XMLSchema" xmlnssi="http://www.w3.org/2001/XMLSchema-instance">
<Body>
<getRussianEnterpriseListRequest xmlns="http://api.vetrf.ru/schema/cdm/cerberus/enterprise/ws-definitions">
<listOptions xmlns="http://api.vetrf.ru/schema/cdm/base">
<count>100</count>
</listOptions>
<enterprise xmlns="http://api.vetrf.ru/schema/cdm/cerberus/enterprise">
<name>Проксима</name>
</enterprise>
</getRussianEnterpriseListRequest>
</Body>
</Envelope>


код программы

Процедура getRussianEnterpriseListRequest()/////////////
ListOptions = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/base", "ListOptions");
ListOptions.count = 100;

enterprise = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/cerberus/enterprise", "Enterprise");
enterprise.name="Проксима";

getStockEntryListRequestDO = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/cerberus/enterprise/ws-definitions", "getRussianEnterpriseListRequest");
getStockEntryListRequestDO.ListOptions = ListOptions;
getStockEntryListRequestDO.enterprise = enterprise;

EnvelopeDO = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
EnvelopeDO.Body = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Body");
EnvelopeDO.Body.Добавить(ФормаXML.Элемент, getStockEntryListRequestDO.Тип().URIПространстваИмен, "getRussianEnterpriseListRequest", getStockEntryListRequestDO);

// получившийся объект можем выгружать во что угодно и передавать каким угодно способом, например, так:
Тело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.getRussianEnterpriseListResponse;

КонецЕсли;
КонецПроцедуры





Отправляй сюда https://api2.vetrf.ru:8002/platform/cerberus/services/EnterpriseService и будит тебе счастье))))
zoertan wrote:
Ну и получаешь ответ?


Ответ приходит, но там у него статус почему-то "REJECTED".

В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.



REJECTED Заявка отклонена.
zoertan wrote:
и получаешь ответ что там с ней


Это каким образом? Можно поподробнее, плиз, с этим ResultRequest?

А вот так это сделать правильно будет?



Ну и получаешь ответ? Я сейчас делаю обработку работу со справочниками , а не с заявками. Запрос на результат - это примерно тотже запрос на подачу заявки. Вот пример кода, ответ получал дальше не разбирался.
ResultRequest = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "receiveApplicationResultRequest");
ResultRequest.apiKey = apiKey;
ResultRequest.issuerId = issuerID;
ResultRequest.applicationId = "278448d7-f657-4aac-b4e7-1cef9f5a5151"; // Должен был получить при отправке заявки


EnvelopeDO = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");

Body = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Body");
EnvelopeDO.Body = Body;

EnvelopeDO.Body.Добавить(ФормаXML.Элемент, ResultRequest.Тип().URIПространстваИмен, "receiveApplicationResultRequest", ResultRequest);


Тело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.receiveApplicationResultResponse.application;

КонецЕсли;
mevgenym wrote:на гитхабе есть исходники выросшие из sayunot


А ссылку?)))
zoertan wrote:
esteem wrote:
zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".


Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?


Вот здесь (строчка выделена красным):

Если (MercAppDO.status = "ACCEPTED") Тогда
// тут шлем запрос на подтверждение
Прокси = WSСсылки.WSApplicationManagementsServiceTest.СоздатьWSПрокси("http://api.vetrf.ru/schema/cdm/application/service", "ApplicationManagementServiceBindingQSService", "ApplicationManagementServiceBindingQSPort");
Прокси.Пользователь = login;
Прокси.Пароль = password;
Результат = Прокси.submitApplicationRequest(SubmitRequestDO.apiKey, MercAppDO);
КонецЕсли;


Так ты ответ хочешь получить. Как я понимаю смысл - Отправляешь заявку на выполнение, получаешь ID заявки и статус принята или нет. Потом надо подать запрос на получение результата выполнение заявки.
ResultRequest = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "receiveApplicationResultRequest");
ResultRequest.apiKey = ;
ResultRequest.issuerId = ;
ResultRequest.applicationId = ;
и получаешь ответ что там с ней

Тут хорошо описано
http://help.vetrf.ru/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B7%D0%B0%D1%8F%D0%B2%D0%BE%D0%BA_%D0%B2_%D0%92%D0%B5%D1%82%D0%B8%D1%81.API#.D0.92.D0.BE.D0.B7.D0.BC.D0.BE.D0.B6.D0.BD.D1.8B.D0.B5_.D1.81.D1.86.D0.B5.D0.BD.D0.B0.D1.80.D0.B8.D0.B8
zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".


Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?
Application = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application", "Application");
Application.serviceId = "mercury-g2b.service";
Application.issuerId = issuerId;
Application.issueDate = ТекущаяДата();

ApplicationDataWrapper = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application", "ApplicationDataWrapper");
Application.data = ApplicationDataWrapper;

SubmitRequestDO = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "submitApplicationRequest");

SubmitRequestDO.apiKey = apiKey;
SubmitRequestDO.Application = Application;

SubmitRequestDO.Application.data.Добавить(ФормаXML.Элемент, MercRequestDO.Тип().URIПространстваИмен, "MercuryApplicationRequest", MercRequestDO);

Что-то типа такого, может на мысль наведет
lalex23 wrote:
esteem wrote:Добрый день!
ХС получаю
Предприятия тоже
Дайте ссылку на описание подсистемы как получить предприятия привязанные к ХС?

http://help.vetrf.ru/wiki/GetBusinessEntityByGUID
activityLocation


Thanks
Добрый день!
ХС получаю
Предприятия тоже
Дайте ссылку на описание подсистемы как получить предприятия привязанные к ХС?
Добрый день!
Объясните работу шлюза ВЕТИС API и меркурия web-интерфейс при внесении бумажного ВСД.
При внесении бумажного ВСД входящего через шлюз, происходит создание ВСД потом погашение и добавление в журнал продукции. Через веб интерфейс такая возможность закрыта, и возможно только непосредственное добавление в журнал продукции, которая происходит без созданий ВСД. Почему отличается логика работы?

шлюз IncomingOperation
http://help.vetrf.ru/wiki/IncomingOperation#.D0.92.D0.BE.D0.B7.D0.BC.D0.BE.D0.B6.D0.BD.D1.8B.D0.B5_.D1.81.D1.86.D0.B5.D0.BD.D0.B0.D1.80.D0.B8.D0.B8
 
Индекс форума » Профиль для esteem » Сообщения, отправленные пользователем esteem
Перейти:   

Powered by JForum 2.1.8 © JForum Team