SOAP-запрос

Компонент позволяет взаимодействовать с внешним SOAP-сервисом, отправляя ему запросы и получая ответы. SOAP-сервису может быть отправлено несколько последовательных запросов, формируемых из строк входной таблицы с параметрами запросов. На выходных портах узла формируются таблицы с ответами сервиса, возвращенными ошибками и дополнительными данными. XML-ответы сервиса преобразуются в табличное представление.

Поддерживаются описание SOAP-сервисов спецификации WSDL 1.1 и протоколы SOAP версий 1.1 и 1.2.

Для работы с SOAP-сервисом необходимо настроенное подключение к SOAP-сервису.

Порты

Входные порты

  •  — Подключение к SOAP-сервису (связь с компонентом Подключение SOAP-сервиса);
  •  — Источник данных запроса (таблица с параметрами запроса), необязательный;
  •  — Управляющие переменные (переменные), необязательный.

Выходные порты

  •  — Выходной набор данных (таблица с ответами SOAP-сервиса);
  •  — Исключения (WSDL fault);
  •  — Дополнительные данные (таблица) содержат описание ошибок и SOAP-ответы сервиса.

Настройка

Перед началом настройки требуется установить связь с узлом подключения к SOAP-сервису. Настройка включает несколько шагов.

Выбор метода запроса

Радиокнопкой необходимо выбрать один из предоставляемых SOAP-сервисом методов (операций).

Настройка запроса

На данном шаге задаются параметры запроса. Слева расположен список полей входного набора данных. Справа расположен список принимаемых SOAP-сервисом параметров. Для дальнейшей настройки необходимо проставить связи между полями и параметрами, сделать это можно несколькими способами:

  • Методом Drag-and-drop — перетащить метку поля из левого списка полей на элемент списка параметров запроса;
  • В правой таблице выбрать нужный параметр запроса и в столбце Связанные поля выбрать из выпадающего списка метку поля из входного набора;
  • Использовать кнопку  Связать все автоматически, при этом происходит автоматическое связывание входных полей и параметров запроса, исходя из значений меток и типов данных полей входного набора и параметров.

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

  • Наличие временной зоны — определяет, указывается ли информация о часовом поясе в рамках стандарта ISO_8601 при передаче параметров запроса типа Дата/Время. Возможные значения:
    • Не указывать.
    • Не указывать для даты — не указывать временную зону для элементов SOAP-запроса типа Date.
    • Указывать всегда.

Настройка ответа сервиса

Необходимо выбрать параметры ответа SOAP-сервиса, которые будут включены в результирующую таблицу в виде отдельных столбцов.

Настройка обрабатываемых исключений

На данном шаге выбираются атрибуты ошибок, которые необходимо вывести в выходном наборе порта Исключения.

Настройка пользовательских заголовков

На данном шаге задаются имена и значения заголовков HTTP-запросов к сервису.

Дополнительные параметры

  • Идентификация запроса.
    • Один запрос в каждой строке входного запроса — каждая строка входной таблицы содержит параметры одного запроса к сервису.
    • Идентификатор запроса — поле входного набора — каждый запрос формируется из нескольких строк входной таблицы с совпадающим идентификатором. Необходимо выбрать поле идентификатора из списка полей входного набора.

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

  • Обработка ответа.
    • Временная зона по умолчанию — значения с типом Дата/Время преобразуются при обработке ответа сервера по следующему алгоритму:
      • Если значение содержит указание временной зоны, оно преобразуется к текущей временной зоне сервера Loginom.
      • Если значение не содержит указание временной зоны, то:
        • если Временная зона по умолчанию задана, значение преобразуется к текущей временной зоне сервера Loginom в предположении, что имеет временную зону, указанную в параметре Временная зона по умолчанию.
        • если Временная зона по умолчанию не задана, значение остается без изменений.
    • Дублировать единичные значения — при установке данного флага для каждого дочернего элемента XML ответа сервиса выводится информация, содержащаяся в родительском элементе (например, атрибуты, дочерние элементы с maxOccurs=1). В противном случае эта информация выводится только для первого дочернего элемента.
    • Проверять на строгое соответствие XSD — при установке флага производится валидация XML ответа сервиса на строгое соответствие XSD схеме, заявленной в WSDL веб-сервиса. В противном случае проверка ответа веб-сервиса производится в упрощенном, ускоренном режиме, и большинство проверок осуществляются только для элементов XML, которые были выбраны для вывода в результирующем наборе данных. Процесс проверки в упрощенном режиме происходит быстрее, однако не гарантирует корректное извлечение данных из XML ответа сервиса в случае, если имеются невыявленные ошибки валидации.
    • Генерировать составные метки полей — метка поля вывода элементов XML ответа сервиса содержит полный путь их расположения в иерархической структуре XML.
  • Дополнительно.
    • Выдавать описание кодов завершения — отображать описание ошибок, произошедших при отправке запроса, получении и разборе ответа сервиса.
    • Выдавать "сырой" ответ сервера — в выходном наборе данных порта Дополнительные данные выводить SOAP-сообщение ответа сервиса.
  • Отладка.
    • Сохранять текст запроса на диск — все запросы, отправленные сервису, записываются в указанную папку в файловом хранилище.
    • Имитировать запрос с ответом в файле — при установке флага фактического запроса к сервису не происходит, а в качестве ответа сервиса выводится содержимое указанного файла.