5.6. Jexl

Сервер приложений предоставляет возможность выполнения Jexl-скриптов, способных вызывать методы Scala-объектов из кода PostgreSql решения.

5.6.1. Контексты выполнения

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

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

Возможные контексты выполнения:

5.6.2. Способы выполнения

Jexl-скрипт можно запустить следующими способами:

  • через SOAP-сервис — в новой пользовательской сессии;

  • через SSH-консоль — в пользовательской, системной или БД-сессии;

  • через WebSocket-консоль — в пользовательской сессии;

  • через REST-сервис разработки — в контексте главной выборки существующей или созданной E-сессии;

  • из gs-automation — в контексте выборки пользовательского интерфейса.

5.6.3. GTK-шлюзы выполнения

Changed in version 1.28.0-rc2,1.29.0-ms1: Изменены имена используемых gtk-шлюзов выполнения Jexl

Все перечисленные способы передают скрипт в прикладной GTK-код через GTK-шлюзы:

  • ru.bitec.app.gtk.jexl.session.Gtk_JexlGatePkg.executeJexl(script, source) — для выполнения в контексте GTK-сессии.

  • ru.bitec.app.gtk.jexl.gl.Gtk_JexlGateLib.executeJexl(script, source) — для выполнения контексте выборки.

Параметр source указывает источник запуска скрипта и позволяет прикладному коду учитывать его при обработке.

Допустимые значения:

  • WebSocket — WebSocket-консоль;

  • SOAP — SOAP-сервис;

  • SSH — SSH-консоль;

  • REST — REST-сервис;

  • RichClient — клиентское приложение.

5.6.3.1. Обратная совместимость

Если версия GTK-модуля решения не содержит классов шлюзов Gtk_JexlGatePkg и Gtk_JexlGateLib, сервер использует для выполнения скриптов устаревшие классы:

  • ru.bitec.app.gtk.jexl.session.Gtk_JexlPkg.jexlScript.eval(script) — для выполнения в контексте GTK-сессии.

  • ru.bitec.app.gtk.jexl.gl.Gtk_JexlLib.jexlScript.devEval(script) — для выполнения контексте выборки.