Обращение к Web сервисам из лотуса.

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

  1. ficoos

    ficoos Гость

    Приветствую форумчан!
    Наступил такой период в работе, когда потребовалось связать lotus с IP телефонией Cisco.
    В адресной книге лотуса есть номера телефонов сотрудников. Почти у всех пользователей в офисе стоят IP телефоны.
    Сейчас сделано так, что к url строке приписывается номер абонента. Неудобства такого обращения связано с
    открытием url страницы ( не лотусовой ), для подтверждения id пользователя и пароля.
    Как с помощью lotusscript обеспечить запрос wsdl документа и получить его в виде массива строк( чтоб можно бвло записать его в поле( log) для анализа),
    и отослать ответ SOAP, чтоб не было открытия url страниц с запросами ввода данных (без написания web, сервисов в лотусе - нет опыта такого рода.),
    а следовало сразу соединение?
    Ооооочень надо!!!
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    вот это постановка задачи
    не проще ли в лотусе написать кнопку нажав на которую посредством VBA сразу будет идти звонок? :unsure:
     
  3. ficoos

    ficoos Гость

    нет не проще. у циски свои свойства безопасности.
    Ей нужно передать кто звонит( чтобы определить номер телефона звонящего, куда передать соединение) и
    номер абонента( кому звонок делается ).
    телефонные аппараты тоже заложены с настройках пользователя, для определения стационарный аппарат( ip телефон )
    или программный.
    Вот такие вот дела....
     
  4. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Почитайте в хелпе лотуса раздел Lotus Domino Designer Basic User Guide and Reference > Programming Domino for Web Applications > Web services> Creating web service consumers

    В принципе ничего сложного, я правда предпочитаю работать с вебсервисами на джаве, а не на скрипте


    Вкратце опишу как делать пользователя вебсервиса:

    1. Получаем WSDL файл описания веб сервиса (по почте или сохраняем напрямую из URL сервиса)
    2. На основе WSDL файла создаем библиотеку вебсервиса (в дизайнере раздел "web service consumer" для дизайнера 8.5). Далее в зависимости от сервиса в библиотеке создадутся классы для работы с сервисом
    3. Создаем агент который будет работать с сервисом.
    4. Вызов сервиса:
    TestServiceLocator locator = new TestServiceLocator();
    TestServiceSoap ws = locator.getTestServiceSoap();
    locator - указывает где находиться сервис (URL)
    ws - объект вебсервиса

    У объекта веб сервиса будут методы которые были описаны в WSDL файле. Вызывая их можно обрабатывать данные:

    Calendar cal = Calendar.getInstance();
    String st = ws.helloWorld(cal); // передаем на вход дату
    System.out.println("Hello World = " + st);

    получаем результат "Hello World = Ви ввели дату 19-01-2009 10:30:21"
     
  5. ficoos

    ficoos Гость

    Да блин... Мне не надо создавать web сервис - он уже существует на циске.
    программа должна работать с чужим сервисом.
    мне надо взять wsdl документ с циски, который не на лотусовом серваке находится.
    Разложить и в ответ вписать нужные данные, а потом отослать этот soap ответ.
    1. Как взять wsdl в вие массива строк( для анализа ) и вписать этот массив в поле?
    2. как отослать массив строк в ответ на запрос ( xml )
    вот и все, что мне надо.
    Опыта с xml тоже нет.
     
  6. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Не нервничайте молодой человек:) а читайте внимательней что я пишу. Я как раз описал процесс использования со стороны домино чужого вебсервиса. Почитайте сначала документацию, разберитесь как вообще работают вебсервисы. Для тестирования сервисов очень советую использовать http://www.soapui.org/
     
  7. ficoos

    ficoos Гость

    Во!
    А может ли кто подсказать:
    -Call Client.MSSoapinit(sWSDL)
    -Что такое .MSSoapinit?
    Просто в этом месте ошибку рисует и не могу инициализировать коннект и взять wsdl структуру.
    web сервис сторонний.
     
  8. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
  9. ficoos

    ficoos Гость

    A есть разница, что документ находится вот по такому пути:
    https://eee:8093/.......?
     
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  11. ficoos

    ficoos Гость

    при прямом обращении к стороннему web сервису - ничего не получилось - отказ в доступе.
    Вытащил его отдельным файлом на локальный комп и теперь при отправке запроса новая ошибка.

    Сама ошибка пришита к сообщению.
    Как с этим бороться??? :(
     

    Вложения:

    • ______.bmp
      Размер файла:
      290,8 КБ
      Просмотров:
      23
  12. ficoos

    ficoos Гость

    Приветствую!
    После нескольких дней упорного поиска решения был создан работоспособный агент, написанный на lotusscript.
    Проблема решилась. Всем спасибо!!!
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ficoos
    поздравляю! поделился бы опытом заодно? другим пригодится
     
  14. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Не знаю как реализована работа у ficooz, но у меня работает вот такой вариант со сторонним веб сервисом, помоему я по этой
    теме так и не отписался нигде...
    (интеграция SAP и Lotus, вызывается WEB сервис на стороне SAP)
    чтобы обратиться к Веб сервису из Лотуса необходимо предустановить SOAP Toolkit 3.0
    лежит он здесь
    SOAP Toolkit 3.0

    Без аутентификации:
    Код (Text):
    Sub Click(Source As Button)
    Dim s As String
    sWSDL = "http://gmvaz.gmavtovaz.local:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=100&wsdl=1.1"
    'Create a new MSSOAP client object
    Set Client =CreateObject("MSSOAP.SoapClient30")
    'Initialize connection to the WSDL file and get WSDL structure
    Call Client.mssoapinit (sWSDL)
    'Call ZRUMM_LN_MAT_CREATE function provided by Web service
    s = "test"
    Print Client.ZRUMM_LN_MAT_CREATE(s)
    End Sub
    C аутентификацией:

    Код (Text):
    Sub Click(Source As Button)
    Dim sWSDL As String

    'username, password - логин и пароль доступа к web-сервису (в моём случае был SAP-овский пользователь с необходимыми полномочиями)


    username="ИМЯ ПОЛЬЗОВАТЕЛЯ"
    password="ПАРОЛЬ"

    sWSDL = "http://"+username+":"+password+"@gmprod:8000/sap/bc/srt/rfc/sap/ZRUMM_LN_MAT_CREATE?sap-client=300&wsdl=1.1"

    'Соединение с web-сервисом с аутентификацией

    Set Client =CreateObject("MSSOAP.SoapClient30")
    Call Client.mssoapinit(sWSDL)

    Client.ConnectorProperty("AuthUser") = username
    Client.ConnectorProperty("AuthPassword") = password
    Client.ConnectorProperty("WinHTTPAuthScheme") = 1

    'Вызов функционального модуля ZRUMM_LN_MAT_CREATE который описан в web-сервисе
    '(понятное дело что у каждого он будет свой со своим числом входных и выходных параметров)
    's1-3 - входные параметры; o1-o3 - выходные параметры

    s1 = "test1"
    s2 = "test2"
    s3 = "test3"

    o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3,o2,o3) 'После отработки он передает в функию s1,s2,s3 и возвращает o1,o2,o3

    'если бы выходной параметр был только один, код выглядел бы так
    'o1 = Client.ZRUMM_LN_MAT_CREATE(s1,s2,s3)



    End Sub
     
  15. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    А без дополнительных библиотек никак?
     
  16. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    NickProstoNick это древнее подняли?
     
  17. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    что нашел то и поднял :lol:
    Просто вот сейчас пробую подключиться к сервису SAP - получаю ошибку

    Код (Text):
    The requested operation failed: WSDLException (at /wsdl:definitions/wsdl:portType/wsp:Policy): faultCode=INVALID_WSDL: Encountered unexpected '{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy'.
     
Загрузка...
Похожие Темы - Обращение Web сервисам
  1. Bafomet
    Ответов:
    18
    Просмотров:
    128
  2. Shouldercannon
    Ответов:
    1
    Просмотров:
    141
  3. proteam
    Ответов:
    7
    Просмотров:
    787
  4. Вовкин
    Ответов:
    0
    Просмотров:
    721
  5. Вовкин
    Ответов:
    0
    Просмотров:
    683

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