DIRECTUM и WEB-сервисы (часть 1)

9 7

Многие наверно уже заметили, что в DIRECTUM стандартный механизм преобразования документов в PDF осуществляется посредством WEB-сервиса PdfTransformationService. Если перейти по адресу  http://<Имя_сервера>:40100/?wsdl, где <Имя_сервера> имя компьютера, на котором установлена служба преобразования, то можно увидеть описание этого WEB-сервиса. Ниже рассмотрим примеры, как можно обращаться к WEB-сервисам (коих расплодилось на просторах интернета уже прилично) в DIRECTUM.

Начнем с простого примера обращения к WEB-сервису склонения «Морфер». Данный WEB-сервис предназначен для склонения слов и словосочетаний на русском языке. Бесплатная версия WEB-сервиса имеет ряд ограничений:

  • Максимум 1000 запросов в сутки.
  • Максимум 100 одинаковых запросов в сутки. Данное ограничение не действует на запросы с параметром s равным "тест".

Подробно о сервисе можно почитать на сайте разработчика: http://morpher.ru/WebServices/Morpher.aspx.

Описание WEB-сервиса находиться по адресу: http://morpher.ru/WebServices/Morpher.asmx?WSDL.

Данный WEB-сервис предоставляет два метода:

  • GetForms – функция склонения, которой необходимо передать слово или словосочетание, которое мы хотим просклонять.
  • Soglasovat – функция согласования единицы измерения, выраженной словом или словосочетанием в именительном падеже, с заданным числом. Например:

Число        Единица измерения      Результат

5               комментарий               комментариев

3               новое письмо              новых письма

100            доллар США                долларов США

Функции надо передать число и единицу измерения.

 Пример работы с данным WEB-сервисом:

  WSDLFileName = "http://morpher.ru/Webservices/Morpher.asmx?WSDL"
  FIO = "Вася Пупкин"
  Str = "Попугай"
  Number = 38

  // Инициализация подключения к сервису
  SoapClient = CreateObject("MSSOAP.SoapClient30")
  SoapClient.MSSoapInit(WSDLFileName)
  
  Rez1 = SoapClient.GetForms(FIO)
  Окно(Rez1)
  Rez2 = SoapClient.Soglasovat(Number; Str)
  Окно(Rez2)

Результатом работы будут последовательно выданные два сообщения:

В первом сообщении мы получили 5 падежных форм, а во втором результат согласования единицы измерения. 

Елена Питомцева

Дмитрий, это вы искали более красивое решение для задачи http://club.directum.ru/blog/post/Sklonenie-FIO-dolzhnostejj-i-podrazdelenijj-po-padezham.aspx? Может быть есть еще примеры, которые реально используются где-нибудь?

Дмитрий Тарасов

Этот материал о том как пользоваться WEB-сервисами, а WEB-сервис склонения "Морфер" используется просто для примера и отношения к тому материалу никакого не имеет. Хотя конечно можно его использовать и для склонения ФИО, но тут возникнут проблемы если у пользователя нет доступа в интернет или в момент когда что-то надо будет проскланять пропадет интернет или WEB-сервис будет недоступен.

Константин Широбоков

Использование произвольных WEB-сервисов как инструментов системы, действительно, способно нарастить функционал малыми силами. Про минусы удаленного сервиса уже упомянул сам Дмитрий (+ угроза безопасности, разве что).

Андрей Посаженников
угроза безопасности, разве что
В принципе с помощью MSSOAP можно обращаться и к защищенным сервисам, поддерживающим и аутентификацию (на уровне транспорта, то есть basic или windows), и шифрование канала (SSL). Так что угрозу безопасности можно устранить, если использовать защищенные сервисы.
Павел Логинов

Выдает ошибку "HRESULT = 0x80040154:Класс не зарегистрирован"

Дмитрий Тарасов

Установите  Microsoft SOAP Toolkit 3.0.

Сергей Жолобов

После установки SOAP пробую выполнить приведенный выше код. Получаю ошибку

Авторизуйтесь, чтобы написать комментарий