.. _gs3_jexl: Jexl ==== Сервер приложений предоставляет возможность выполнения :term:`Jexl-скриптов `, способных вызывать методы Scala-объектов из кода :term:`PostgreSql решения `. Контексты выполнения ----------------------- Jexl-скрипт выполняется сервером приложений с правами пользователя, от имени которого создана сессия. Jexl-скрипт может выполнятся в разных контекстах, от чего зависит перечень доступных методов и классов. Возможные контексты выполнения: - контекст прикладной :java:type:`GTK-сессии `; - контекст :java:type:`выборки ` текущего рабочего сеанса. Способы выполнения ------------------ Jexl-скрипт можно запустить следующими способами: - через :ref:`SOAP-сервис ` — в новой пользовательской сессии; - через :ref:`SSH-консоль ` — в пользовательской, системной или БД-сессии; - через :ref:`WebSocket-консоль ` — в пользовательской сессии; - через :ref:`REST-сервис разработки ` — в контексте главной выборки существующей или созданной E-сессии; - из :ref:`gs-automation ` — в контексте выборки пользовательского интерфейса. GTK-шлюзы выполнения -------------------- .. versionchanged:: 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`` — клиентское приложение. Обратная совместимость `````````````````````` Если версия 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)`` — для выполнения контексте выборки. .. seealso:: :ref:`gs3_soap`, :ref:`gs3_rest`, :ref:`gs3_ssh`, :ref:`gs3_wsconsole`, :ref:`gsauto_serverconfig`