5.8.4. SOAP

SOAP-сервис позволяет выполнять Jexl-скрипт в контексте пользовательской сессии. Сеанс создаётся для каждого запроса и не сохраняет состояние между вызовами.

5.8.4.1. Аутентификация

Для вызова сервиса передайте учётные данные пользователя и алиас базы данных в соответствии с аутентификацией REST/SOAP-сервисов. Скрипт выполняется с правами аутентифицированного пользователя.

5.8.4.2. Адрес и схемы

WSDL-описание доступно по адресу:

http://{server:port}/app/sys/soap/sys-service-1.0.0?wsdl

XSD-схемы объектов запроса и ответа доступны по адресу:

http://{server:port}/app/sys/soap/sys-service-1.0.0?xsd=1

5.8.4.3. Вызов Jexl

Вызовите SOAP-метод executeJexl и передайте текст скрипта в поле script объекта JexlSoapRequest. Текстовый результат скрипт устанавливает через Gtk_SoapPkg.setOutputData(value); он возвращается в поле data объекта JexlSoapResponse. Поля success, exception и exceptionStack содержат признак успеха и сведения об ошибке.

5.8.4.4. Передача файлов

Сервис поддерживает MTOM. Прикреплённые бинарные данные передаются в поле attachment объектов JexlSoapRequest и JexlSoapResponse. В прикладном коде доступен SoapContext: он предоставляет строковые данные запроса, входной и выходной потоки вложений. В Jexl используйте методы Gtk_SoapPkg:

  • inputStreamToTemp — создаёт временный файл из входного вложения;

  • attachFile(file) — добавляет файл к ответу;

  • setOutputData(value) — устанавливает текстовые данные ответа.