Связка Lotus-pwa

Тема в разделе "Lotus - Программирование", создана пользователем Реник, 25 ноя 2009.

  1. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Здравствуйте, товарищи!!
    Интересуюсь вот таким вопросом: у меня есть агент,который запускает метод в стороннем web-service. Для связи с web-service я использую Soap-Toolkit.

    Но при отработке агента возникает ошибка ,что ProjectName missing.
    Не подскажите в чём проблема ????

    вот код вызываемого агента:

    Код (Text):
    Dim Connector As Variant, Serializer As Variant, Reader As Variant
    Set Serializer =createobject("MSOSOAP.SoapSerializer30")
    Set connector =createobject("MSOSOAP.HttpConnector30")
    Set xmldom=createobject ("Msxml2.DOMDocument.5.0")
    Set reader=createobject ("MSOSOAP.SoapReader30")
    Set Client =CreateObject("MSOSOAP.SoapClient30")
    Call Client.mssoapinit (wsdllink)
    Connector.Property("EndPointURL") = wsdllink
    Print "задаём логин и пароль пользователя,под которым идёт обращение"
    'client.ConnectorProperty("AuthUser") = "pbrfilesinout"
    'client.ConnectorProperty("AuthPassword") = ",jcchtathtyn"
    'Client.ConnectorProperty("WinHTTPAuthScheme") = 1
    Print "Коннектимся к сервису"
    Call Connector.Connect
    '   Connector.Property("SoapAction") = "CeatePWA"

    Call Connector.BeginMessage
    Stop
    ' устанавливаем Тайм-аут ,чтобы сервис сммог отработать нормально
    Client.ConnectorProperty("Timeout") = 700000

    ' вызываем метод из wsdl
    'Set Res=Client.CeatePWA(param1,param2,param3)
    ' ловим выходной поток отработки метода wsdl- файла
    Serializer.Init Connector.InputStream
    Serializer.StartEnvelope "SOAP-ENV" , "http://schemas.xmlsoap.org/soap/encoding/"
    Serializer.StartBody
    Stop

    Serializer.StartElement "CeatePWA" , "http://tempuri.org/"

    Print "Передаём в метод параметры"
    Serializer.startElement "loginGMP"
    Serializer.writeString param1
    Serializer.EndElement
    Serializer.startElement "number"
    Serializer.writeString param2
    Serializer.EndElement

    Serializer.startElement "urlHook"
    Serializer.writeString param3
    Serializer.EndElement
    Serializer.EndElement
    Print "Закончили передачу параметров"
    '   Serializer.WriteXml ("C:\MyService.xml")

    Serializer.endBody

    Serializer.endEnvelope

    Connector.EndMessage
    errh =Client.FaultString
    If errh <> "" Then
    Print "Ошибка" +errh
    End If
    Print "Читаем исходящий поток"
    Reader.Load Connector.OutputStream
    Print "проверка на наличие ошибок"
    If Not ( Reader.faultstring Is Nothing)Then
    Print "нашли ошибку при отработке сервиса"
    Print Cstr( Reader.faultstring.text )
    Else
    Print " Смотрим результаты работы"
    '   Msgbox (reader.RPCResult.text)
    Msgbox Reader.DOM.xml
    End If
    <table valign="top" style='margin:0;width:100%;border:1px dashed red;'>[tr]<td align='middle' bgcolor='#ff6060' valign='top' width='1%'>
    <FONT color='#ffffff' size='+3'> ! </font>
    </td><td align="midle" valign='top' style='background:#fff;'>добавлен тег кода</td>[/tr]</table>
     

    Вложения:

    • ______.doc
      Размер файла:
      32,5 КБ
      Просмотров:
      14
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    может кому и интересно отлаживать вашу простыню, сервис, да ещё и микрософтовый КОМ :newconfus:
    а не прощели было взять тулзу для проверки сервиса (к-л) и сначала прогнать через неё?
     
  3. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    проверяли: самм сервис работает нормально.
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Реник
    Для начала я бы добавил в начало кода On Error Goto ErrHandler, а в конец
    exit sub
    ErrHandler:
    print "Ошибка " & cstr(Err) & " (" & Error & ") в строке " & Cstr(erl)

    чтоб понять, где ошибка
     
  5. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    выводит ,что нет ошибок в коде. к первому сообщению прикрепил файл с картинкой, екотоорая возникает при отработке агента. Извините,что сразу не вставил, может эта картинка попможет.
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Судя по картинке, сервису не хватает для нормальной отработки имени проекта. Как работать с сервисами PWA надо либо гуглить, либо спрашивать в других форумах — это уже не лотусовый вопрос.
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    и конкретно - разбираться с КОМом
    видать параметры не те или не туда передаются...
    а чтобы получить более управляемый код - делаем на java
     
  8. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Ребята , всем спасибо за помощь! Но проблему решил самостоятельно: банально не передавал необходимые параметры в метод, хотя был уверен,что всё в порядке.

    Комуц интересно,то вот код,котрый мне помог решить проблему.

    <!--shcode--><pre><code class='Dim Connector As Variant, Serializer As Variant, Reader As Variant

    ' Получаем основные параметры для работы метода
    param1=doc.GetItemValue("Chief_Executor")(0)
    param2=doc.GetItemValue("Final_Number")(0)
    param3= doc.GetItemValue("CRM_Hook_Workspace_Link")(0)



    Set Client =CreateObject("MSOSOAP.SoapClient30")
    Set Serializer =createobject("MSOSOAP.SoapSerializer30")
    Set connector =createobject("MSOSOAP.HttpConnector30")
    Set xmldom=createobject ("Msxml2.DOMDocument.5.0")
    Set reader=createobject ("MSOSOAP.SoapReader30")



    Call Client.mssoapinit (wsdllink)
    Connector.Property("EndPointURL") = wsdllink


    Call Connector.Connect
    ' устанавливаем Тайм-аут ,чтобы сервис сммог отработать нормально
    Client.ConnectorProperty("Timeout") = 700000
    Connector.Property("SoapAction") ="http://tempuri.org/CeatePWA"

    Call Connector.BeginMessage

    ' ловим выходной поток отработки метода wsdl- файла
    Serializer.Init Connector.InputStream
    Serializer.StartEnvelope "SOAP-ENV" , "http://schemas.xmlsoap.org/soap/encoding/"
    Serializer.StartBody


    Serializer.StartElement "CeatePWA" , "http://tempuri.org/"


    Serializer.startElement "loginGMP" , "http://tempuri.org/"
    'Serializer.writeString "Луппов Александр Вячеславович"
    Serializer.writeString param1
    Serializer.EndElement

    Serializer.startElement "number" , "http://tempuri.org/"
    ' Serializer.writeString "zzzzzz11"
    Serializer.writeString param2

    Serializer.EndElement

    Serializer.startElement "urlHook" , "http://tempuri.org/"
    ' Serializer.writeString "https://store.it.ru/hook/2009/11/2009-000004809"
    Serializer.writeString param3
    Serializer.EndElement
    Serializer.EndElement


    Serializer.endBody

    Serializer.endEnvelope

    Connector.EndMessage

    'Проверяем на наличие ошибок

    errh =Client.FaultString
    If errh <> "" Then
    Print "Ошибка" +errh
    End If


    'Читаем исходящий поток
    Reader.Load Connector.OutputStream

    Set SoapServer = CreateObject("MSSOAP.SoapServer30")

    SoapServer.SoapInvoke Connector.InputStream, Connector.OutputStream, SOAPAction

    runmethodfromwsdlfile=Reader.Body.xml'>код[/CODE]
     
Загрузка...

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