Вызов Из Лотуса Web-service Разработанной На C# И Sap

Тема в разделе "Lotus - Программирование", создана пользователем imendan, 15 мар 2012.

  1. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Здравствуйте, друзья! С Наступлением весны!
    Мне необходимо отправить запрос на Web-service, предоставленной системой SAP (подобная задача и с другим Web-service-ом на ASP.NET). Я перепробовал кучу методов. Через объект Msxml2.XMLHTTP, пытался через кнопку New Web Service Consumer, через MSSOAP.SoapClient, еще несколько способов. Но во всех способах я сталкивался с ошибками, о которых молчит господин гугл. Есть ли у кого опыт в этом деле?
    1. Можете скинуть ссылку?
    2. Можете выбрать способ, на который я предоставлю ошибку?
    3. Любая помощь любой совет!

    Спасибо заранее! Вообще вопросы интеграции разнородных систем одна из самых актуальных задач на сегодня! Так что братцы, сестрицы )) Прошу помощи! -_-
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    IMENDAN
    приведите ошибки, которые выдаёт "New Web Service Consumer"

    У меня часто возникала ошибка когда сервис использовал "чужие" для Лотуса классы, например, сервис из SQL Server-а возвращал мне DataSet в функции.

    Переделал всё на скалярные типы - работает
     
  3. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
  4. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Ввожу урл - веб-сервиса, затем выходит окно с вводом юзера и пароля. После ввода, выходит ошибка

    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'.

    Добавлено:
    Я уже протестировал веб-сервис через SoaMoa. Все работает прекрасно!
     
  5. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    ну мобуть тогда и не юзать КОМ? -_-
    мобуть клиент старенький..., потому вместо МСпердулек (бороться/апдейтить/регать) - просто воспользоваться общепринятыми тулзами
     
  6. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Клиент Lotus? 8.5.3

    А какие тулзы стандартные? Какие еще варианты есть?
     
  7. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
  8. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Пока я пытаюсь подключиться через java-коннекторы, может у вас есть идеи по подключению через функцию New Web Service Consumer?
     
  9. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Создаешь New Web Service Consumer, забиваешь имя, в URL that points to a WSDL file забиваешь адрес стороннего wsld. Он тебе подготовит класс(ы) для работы с wsdl. Далее подключаешь Service Consumer к коду, как библиотеку.

    С некоторыми wsdl это не поможет, если запускать от пользователя, то клиент >=8.
     
  10. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    я уже этот делал

    вот ошибка, выкладывал тоже: <_<

    Ввожу урл - веб-сервиса, затем выходит окно с вводом юзера и пароля. После ввода, выходит ошибка

    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'.
     
  11. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    IMENDAN не мучьте себя <_<, если среды на джава спокойно работают - то их и пользуйте
    SoaMoa, например - на jvm
     
  12. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Пригалагаю решение! Как подключиться, авторизоваться и вытащить массив из веб-сервиса, использую SoapToolkit30
    Код (LotusScript):
    Set Client = CreateObject("MSSOAP.SoapClient30")
     
    Call Client.MSSoapInit("http://loginassword@test.ttt.kz:8000/sap/bc/srt/wsdl/bndg_asdf45454sadfasdfa45sdss/wsdl11/allinone/ws_policy/document?sap-client=001")
    Client.ClientProperty("ServerHTTPRequest") = True
    Client.ConnectorProperty("ProxyServer") = "<CURRENT_USER>"
    Client.ConnectorProperty("AuthUser") = "Login"
    Client.ConnectorProperty("AuthPassword") = "Password"
    Client.ConnectorProperty("WinHTTPAuthScheme") = 1
     
    xml = Client.ZwsPernr(param1, param2)
    i = 0
     
    ForAll o In xml
       i = i + 1
    End ForAll
     
    'Переобъявляем динамические массивы для хранения TypeId и TypeName, в соответствии с количеством типов документов
    ReDim TypeId(0 To i -1) As Long
    ReDim TypeN(0 To i -1) As String
     
    'Записываем значения TypeId и TypeName в соответствующие массивы
    i = 0
    ForAll o In xml
       TypeId(i) = CLng (o(0).text)
       TypeN(i) = o(1).text
       Print o(2).text
       Print o(3).text
       Print o(4).text
       i = i + 1
    End ForAll
    Спасибо всем! Если есть вопросы задавайте, я вроде выкурил эту тему вдоль и поперек!
     
  13. Dragon108

    Dragon108 Well-Known Member

    Регистрация:
    19 янв 2010
    Сообщения:
    264
    Симпатии:
    0
    Можно сюда же, что бы не плодить одинаковые темы?
    Вопрос вдогонку :) ... а точнее несколько ...
    Есть такая же задача: подключиться к web-сервису SAPа. Пытаемся подключиться через Web Service Consumer, либо через MSSOAP Toolkit 3.0. И там и там есть свои траблы:

    1) MSSOAP Toolkit 3.0
    Насколько я понял это вообще древняя технология, которая еще была до NET. Framework. Еле нашли дистрибутив на нее под win7 и windows server 2008. (на офф сайте msd-на вообще сказано что MSSOAP Toolkit 3.0 не поддерживается выше win XP). Ну да ладно ... нашли, поставили на локальную машину, стучимся с нее (как в данном примере через CreateObject и т.д.) на web-сервис на сервер ... ответа ноль ... поставили MSSOAP на сервер - ответ получили. Получается что эта штука должна стоять как на запрашивающей, так и на запрашиваемой стороне? Можно ли ее чем то заменить на запрашиваемой стороне?

    2) Web Service Consumer
    Проблема с
    Код (LotusScript):
    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'.
    тоже возникала. Решилась тем, что просто сохранили текст WSDLны и выкинули оттуда все куски, которые упоминали об этой Policy - после этого файл спокойно вставился в Web Service Consumer. (насколько я понял, и о чем говорит спецификация w3c, - это политики для доступа и выполнения операций к тем или иным атрибутам, у SAPеров между делом это генериться автоматически при создании web-сервиса :D). Теперь вопрос ... собственно как подключиться к сервису? насколько я понял при каждом подключении к сапу требуется аутентификация, причем логи и пароль должен быть во что то зашифрован :blink: куда их впихивать?

    Заранее спасибо за ответы.
     
  14. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    По Web Service Consumer
    Вам лотус должен был создать класс наследник PortTypeBase, попробуйте установить логин и пароль с помощью метода этого класса

    Sub SetCredentials(username As String, password As String)

    P.S. Но это для случая простой авторизации. Не знаю прокатит для Сапа
     
Загрузка...
Похожие Темы - Вызов Из Лотуса
  1. Sanchezz86
    Ответов:
    1
    Просмотров:
    592
  2. vln1981
    Ответов:
    0
    Просмотров:
    714
  3. JohnLemon
    Ответов:
    3
    Просмотров:
    902
  4. Дайнеко
    Ответов:
    3
    Просмотров:
    1.495
  5. VladSh
    Ответов:
    8
    Просмотров:
    2.707

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