Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) SOAP клиент на 7.7 (число прочтений - 26241 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: SOAP клиент на 7.7
Ответ #15 - 21. Февраля 2014 :: 05:02
Печать  
Цитата:
но ведь это не правильный путь получения результата

Ну почему не правильный?.
Просто разработчики веб-сервиса не утрудили себя описанием типов возвращаемых параметров.
Данный wsdl никак не описывает тип и структуру возвращаемого параметра ни у одного из методов. Поэтому ты получаешь некий текстовик - скорее всего это xml.
Если не xml, то нужно у разработчиков запрашивать структуру выхода.
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: SOAP клиент на 7.7
Ответ #16 - 21. Февраля 2014 :: 18:15
Печать  
Цитата:
Рез= ВебСервис.MSSOAPInit("http://region.4sides.ru:6612/PiligrimServises.svc?wsdl");


Там используется стиль document/literal, а этот вариант в принципе предполагает только одно возвращаемое значение.
Типа "документ" - а что за документ - это к разработчикам сервиса, могу только согласиться с Димой.

О стилях binding/use wsdl, на мой взгляд, хорошо структурировано здесь: http://www.ibm.com/developerworks/library/ws-whichwsdl/

Для document/literal есть еще вариант wrapped, но во-первых, будут ли разработчика сервиса менять wsdl (совсем не уверен).
И как wrapped вариант будет переваривать SoapClient30 - без малейшего понятия (хотя интересно).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: SOAP клиент на 7.7
Ответ #17 - 21. Февраля 2014 :: 19:09
Печать  
Кстати, если немного помедитировать, то становится ясно, что у нас как раз wrapped вариант.

Со следующей схемой:
Код
Выбрать все
  <xs:element name="DepartureInfo">
    <xs:complexType>
	<xs:sequence>
	  <xs:element minOccurs="0" name="BarCod" nillable="true" type="xs:string"/>
	</xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DepartureInfoResponse">
    <xs:complexType>
	<xs:sequence>
	  <xs:element minOccurs="0" name="DepartureInfoResult" nillable="true">
	    <xs:complexType>
		<xs:annotation>
		  <xs:appinfo>
		    <ActualType Name="InfoDepartureDB" Namespace="http://schemas.datacontract.org/2004/07/PiligrimDataBase" xmlns="http://schemas.microsoft.com/2003/10/Serialization/"/>
		  </xs:appinfo>
		</xs:annotation>
		<xs:sequence>
		  <xs:any namespace="http://tempuri.org/InfoDepartureDB.xsd"/>
		</xs:sequence>
	    </xs:complexType>
	  </xs:element>
	</xs:sequence>
    </xs:complexType>
  </xs:element>
 


Там в wsdl, обратите внимание, туева хуча импортов в секции схемы.
Вообще, wrapped document/literal - довольно прогрессивный вариант, в том числе поддерживемый WS-I.
И позволяющий валидировать пакеты запросов по схеме, которая является частью wsdl.
Другое дело, что, похоже, работать с этим вариантом в SoapClient30 - не шибко фонтанное удовольствие, - насколько я понимаю.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: SOAP клиент на 7.7
Ответ #18 - 21. Февраля 2014 :: 19:24
Печать  
А, да, а описание InfoDepartureDB можно забрать здесь: http://region.4sides.ru:6612/PiligrimServises.svc?xsd=xsd8
Проще, конечно, во всем этом разбираться не вручную, а с помощью того же SoapUI, например.
Там интерфейсы можно поизучать просто волшебно.

Коллеги, а вы, кстати, для 7.7/SoapClient30 код как генерите? Чего-то волшебного не существует или я просто не в курсе?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Кошки рулят
Full Member
***
Отсутствует



Сообщений: 125
Зарегистрирован: 26. Ноября 2008
Re: SOAP клиент на 7.7
Ответ #19 - 22. Февраля 2014 :: 01:34
Печать  
Вопрос решен, всем отбой и спасибо
мсдн через гугл/янд-переводчик рулит
и еще один сильный прием: если во что-то долго упираешься и ничего не получается, значит где-то было, но прошло мимо, надо начать все с чистого листа ...
Как и было предсказано http://www.1cpp.ru/forum/YaBB.pl?num=1234970057/15
данные можно разобрать на узлы методом Item
Код
Выбрать все
Для Сч=0 по Данные.length-1 Цикл
  Узел=Данные.Item(Сч);
КонецЦикла  


В данном случае оказалось 2 узла: 0 - схема, 1 - собственно данные

Вот как-то так мой зоопарк перевозчиков пополнил ФорСайд. Менеджер может из базы контролировать доставку клиенту накладной перевозчиком ...
  

______________________003.ert ( 19 KB | Загрузки )
Наверх
 
IP записан
 
Кошки рулят
Full Member
***
Отсутствует



Сообщений: 125
Зарегистрирован: 26. Ноября 2008
Re: SOAP клиент на 7.7
Ответ #20 - 18. Апреля 2014 :: 22:41
Печать  
Новая беда:
СоздатьОбъект("MSOSOAP.SoapClient30") не работает на 64-bit компьютерах
Чем можно заменить?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать