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)— устанавливает текстовые данные ответа.