Web Service

Тема в разделе "Lotus - Программирование", создана пользователем doka, 27 янв 2015.

  1. doka

    doka Well-Known Member

    Регистрация:
    18 фев 2010
    Сообщения:
    118
    Симпатии:
    0
    Здравствуйте!

    Хотел бы спросить по такой древней теме как web-сервисы.
    Имею лотус и web-сервис на рнр(http://front.fastpoint.ru/front-test.php?wsdl)
    С подключением, вроде бы, проблем нет:

    sWSDL = "http://front.fastpoint.ru/front-test.php?wsdl"
    Set Client =CreateObject("MSSOAP.SoapClient30")
    Call Client.mssoapinit(sWSDL)

    С вызовом функции, в которой все параметры типа string, тоже проблем нет: Set o1 = Client.AddPackageTest1("", "", "", "", "", "", "")

    Проблема возникает с функцией(Set o1 = Client.AddPackageTest2(perem, "", "", "", "", "", "") ), в которой параметр имеет тип "корреспондент":

    <xsd:complexType name="Correspondent">
    <xsd:all>
    <xsd:element name="name" type="xsd:string"/>
    <xsd:element name="address" type="xsd:string"/>
    <xsd:element name="contactPerson" type="xsd:string"/>
    <xsd:element name="contactPhone" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>

    Чтобы я ему не скармливал(массив, список), выдает ошибку несоответствия типов. Создавал даже у себя класс "correspondent" as XSD_ANYTYPE - не помогло.

    Создал у себя web consumer на основе url выше. Проблем не возникло с использованием функций. Как правильно работать с внешними web-сервисами?

    Поделитесь мудростью)
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    doka
    Мало я с ними работал, но может поможет.
    Лично я импортировал wsdl в lotus, затем делал агента, в который был подключен данный webService.
    После этого все работало.
    CreateObject("MSSOAP.SoapClient30") не использовал.
    Мой пример для http://www.morpher.ru/WebServices/Morpher.asmx?WSDL
    В лотусе сохранен как Wev Service Consumer под именем morpher
    Код (LotusScript):
    Option Public
    Option Declare
    Use "morpher"
    Sub Initialize
    On Error GoTo handler

    Dim k As New Morphersoap_n0()

    Dim d As New Xsd_decimal()
    Dim res As Variant

    Call d.Setvaluefromstring("13")

    Set res = k.Propisrub(d)

    GoTo endh
    handler:
    MsgBox "Error in line " & Erl & Chr(10) & Chr(13) & error$
    Resume endh
    endh:
    End Sub
     
Загрузка...
Похожие Темы - Web Service
  1. Proger J.
    Ответов:
    1
    Просмотров:
    201
  2. TAPAKAHATOP
    Ответов:
    4
    Просмотров:
    427
  3. Xalet
    Ответов:
    8
    Просмотров:
    967
  4. lmike
    Ответов:
    4
    Просмотров:
    757
  5. Shandrik
    Ответов:
    5
    Просмотров:
    1.426

Поделиться этой страницей