Как вызвать веб-службу SOAP из InTouch Wonderware или SQL Server 2014

Некоторое время я пытался вызвать существующую веб-службу SOAP из InTouch Wonderware или MS SQL 2014. Неважно, какой из двух вызывает ее, поскольку проект Wonderware в любом случае читает / записывает в базу данных SQL Server.

Мои знания в основном ограничены Wonderware и его встроенными функциями для доступа к базе данных SQL Server, что не очень хорошо сочетается с обычными руководствами по теме веб-сервисов.

Веб-сервис предоставляется клиентом, которому уже более десяти лет, и он передан на аутсорсинг, что исключает любые изменения в нем. Цель состоит в том, чтобы запросить данные о сырье из веб-службы по идентификатору, а затем вернуть данные о произведенном материале. Параметры каждой функции задокументированы, но единственный существующий URL-адрес требует имени пользователя / пароля и напрямую отображает содержимое файла WSDL. Этот файл (при локальном сохранении) работает в SoapUI, и тестовые примеры дают требуемые результаты.

Моя проблема - это первый шаг - подключение к веб-сервису и отправка / получение сообщений. WebSVC (клиент веб-службы InTouch) не может обрабатывать базовую аутентификацию, даже не может подключиться при включении имени пользователя и пароля в ссылку (которая работает в любом браузере). Руководства по этой теме часто устарели или не соответствуют решаемой задаче.

Поскольку мои знания о базах данных и веб-программировании ограничены, как я могу использовать веб-службу (желательно несложным способом)? Производительность не имеет значения - база данных обрабатывает в среднем менее 10 запросов в минуту, а задержки не нарушают ничего существенного.

какой код вы пробовали до сих пор?

Yuca 15.08.2018 15:08

является позволяет вызывать веб-службы из SQL Server напрямую, используя объекты OLE, с достаточной преданностью. Однако я настоятельно рекомендую вам не делать этого из-за множества предостережений в отношении стабильности, производительности и мониторинга. Посмотрите на использование служб Integration Services или любого клиентского языка программирования по вашему выбору - если вы работаете в Windows, PowerShell New-WebServiceProxy позволяет довольно легко подключать службы SOAP, и вставлять что-либо в SQL Server из него также просто (Invoke-Sqlcmd).

Jeroen Mostert 15.08.2018 16:07

Обычно, когда я сталкиваюсь с ограничениями, подобными описанным вами в Wonderware, я обращаю внимание на создание клиентского элемента управления в .NET, который я могу импортировать как библиотеку функций сценария (в среде ArchestrA IDE). Достаточно ли у вас знаний .NET (VB или C#) для создания базовой библиотеки клиентского управления и тестирования вне Wonderware? Если вы можете заставить его работать вне Wonderware, попробуйте импортировать .DLL и запустить его из графического скрипта ArchestrA.

Grambot 15.08.2018 22:37

@JeroenMostert Спасибо, прокси Powershell, похоже, помогает. Никогда раньше не использовал PS (или слышал о прокси), но установка учетных данных и использование метода тестирования веб-службы работали нормально, подробности я выясню позже. Теперь ... как мне принять это как ответ?

Dynat 16.08.2018 12:13

Просто запишите это и примите. Самостоятельно отвечать на вопросы, потому что кто-то слишком ленив, чтобы превратить простой комментарий в исчерпывающий ответ, абсолютно разрешен. :-)

Jeroen Mostert 16.08.2018 12:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
552
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Процитирую комментарий Йеруна Мостерта: "если вы работаете в Windows, PowerShell New-WebServiceProxy позволяет довольно легко подключать службы SOAP, и вставка вещей в SQL Server из него также проста (Invoke-Sqlcmd)."

Такой подход работает. Подводя итог этапам, пока я не получил ответ от веб-службы:

  • Обновление до PowerShell 5.1 (в Win7 VM его не было)
  • Настроить WebServiceProxy по гайду Майкрософт
  • Добавьте учетные данные, атрибуты и метод тестирования внешним гидом, решив проблему аутентификации и получив требуемый формат ввода

Другие вопросы по теме