Некоторое время я пытался вызвать существующую веб-службу SOAP из InTouch Wonderware или MS SQL 2014. Неважно, какой из двух вызывает ее, поскольку проект Wonderware в любом случае читает / записывает в базу данных SQL Server.
Мои знания в основном ограничены Wonderware и его встроенными функциями для доступа к базе данных SQL Server, что не очень хорошо сочетается с обычными руководствами по теме веб-сервисов.
Веб-сервис предоставляется клиентом, которому уже более десяти лет, и он передан на аутсорсинг, что исключает любые изменения в нем. Цель состоит в том, чтобы запросить данные о сырье из веб-службы по идентификатору, а затем вернуть данные о произведенном материале. Параметры каждой функции задокументированы, но единственный существующий URL-адрес требует имени пользователя / пароля и напрямую отображает содержимое файла WSDL. Этот файл (при локальном сохранении) работает в SoapUI, и тестовые примеры дают требуемые результаты.
Моя проблема - это первый шаг - подключение к веб-сервису и отправка / получение сообщений. WebSVC (клиент веб-службы InTouch) не может обрабатывать базовую аутентификацию, даже не может подключиться при включении имени пользователя и пароля в ссылку (которая работает в любом браузере). Руководства по этой теме часто устарели или не соответствуют решаемой задаче.
Поскольку мои знания о базах данных и веб-программировании ограничены, как я могу использовать веб-службу (желательно несложным способом)? Производительность не имеет значения - база данных обрабатывает в среднем менее 10 запросов в минуту, а задержки не нарушают ничего существенного.
является позволяет вызывать веб-службы из SQL Server напрямую, используя объекты OLE, с достаточной преданностью. Однако я настоятельно рекомендую вам не делать этого из-за множества предостережений в отношении стабильности, производительности и мониторинга. Посмотрите на использование служб Integration Services или любого клиентского языка программирования по вашему выбору - если вы работаете в Windows, PowerShell New-WebServiceProxy
позволяет довольно легко подключать службы SOAP, и вставлять что-либо в SQL Server из него также просто (Invoke-Sqlcmd
).
Обычно, когда я сталкиваюсь с ограничениями, подобными описанным вами в Wonderware, я обращаю внимание на создание клиентского элемента управления в .NET, который я могу импортировать как библиотеку функций сценария (в среде ArchestrA IDE). Достаточно ли у вас знаний .NET (VB или C#) для создания базовой библиотеки клиентского управления и тестирования вне Wonderware? Если вы можете заставить его работать вне Wonderware, попробуйте импортировать .DLL и запустить его из графического скрипта ArchestrA.
@JeroenMostert Спасибо, прокси Powershell, похоже, помогает. Никогда раньше не использовал PS (или слышал о прокси), но установка учетных данных и использование метода тестирования веб-службы работали нормально, подробности я выясню позже. Теперь ... как мне принять это как ответ?
Просто запишите это и примите. Самостоятельно отвечать на вопросы, потому что кто-то слишком ленив, чтобы превратить простой комментарий в исчерпывающий ответ, абсолютно разрешен. :-)
Процитирую комментарий Йеруна Мостерта: "если вы работаете в Windows, PowerShell New-WebServiceProxy позволяет довольно легко подключать службы SOAP, и вставка вещей в SQL Server из него также проста (Invoke-Sqlcmd)."
Такой подход работает. Подводя итог этапам, пока я не получил ответ от веб-службы:
какой код вы пробовали до сих пор?