Пользовательская JavaScript-функция (JS-функция) доступна для подключения:
в инструменте «Аналитичекие панели» для выполнения команды «Вызов функции JS» с помощью элемента управления «Кнопка»;
в инструменте «Отчёты» и расширении «Интерактивные формы ввода данных»:
для настройки действия гиперссылки в регламентном отчёте и форме ввода, заданной в ячейке отчёта/формы;
для настройки действия, предобработчика, постобработчика пользовательской кнопки, добавленной на панели инструментов в реглментном отчёте и форме ввода;
в веб-приложении и расширении «Конструктор бизнес-приложений» для подписки на события:
при отрисовке типа страницы: login, navigator или object;
при открытии объекта;
при открытии папки в навигаторе объектов.
Для подключения пользовательской JS-функции:
Создайте JS-файл, содержащий пользовательскую JS-функцию, в папке установки веб-приложения/конструктора бизнес-приложений.
Путь до папки установки веб-приложения, если описание плагина добавляется в конфигурационном файле config.json:
в ОС Linux: /opt/foresight/fp10.x-webserver/r;
в ОС Windows: C:\Program Files (x86)\Foresight\Analytics Platform 10.x Web Application\r.
Путь до папки установки конструктора бизнес-приложений:
если серверная часть конструктора бизнес-приложений установлена автоматически на веб-сервер Apache2 или вручную на IIS:
в ОС Linux: /opt/foresight/fp10.x-dba;
в ОС Windows: C:\Program Files (x86)\Foresight\DBA_10.x. Папка DBA_10.x создаётся вручную и может отличаться;
если серверная часть конструктора бизнес-приложений установлена вручную на веб-сервер Apache2, Java или автоматически на IIS:
в ОС Linux: /opt/foresight/dba/10.x;
в ОС Windows: C:\Program Files (x86)\Foresight\Designer of Business Application 10.x Web Server.
Совет. Для удобного использования плагинов создайте отдельную папку Plugins, в которой будут размещаться плагины.
В OC Linux раздайте права на пользовательскую папку с плагинами/создаваемый JS-файл в Debian-подобных дистрибутивах для пользователя www-data. При работе в других дистрибутивах ОС Linux замените www-data на apach для RedHat-подобных дистрибутивов или на apache2 для ALT Linux.
Например, файл Func.js:
function myFunc(){
alert("Пример вызова пользовательской JS-функции из файла");
}
Примеры функций представлены в описании сигнатур.
Добавьте ссылку на созданный JS-файл в поле externalJs в конфигурационном файле config.json для веб-приложения или config.json/DBA.config.json для конструктора бизнес-приложений. Для этого укажите относительный путь к JS-файлу от основного файла веб-приложения/конструктора бизнес-приложений index.html:
"externalJs": [{"src": "./Plugins/Func.js"}]
Перезапустите серверную часть веб-приложения/конструктора бизнес-приложений.
После выполнения действий пользовательская JS-функция будет подключена к соответствующему объекту при указании её имени в настройках вызова JS-функции.
Подключение
пользовательской JS-функции в веб-приложении с конфигурационным файлом
PP.xml
Сигнатура
пользовательской JS-функции для аналитической панели
Сигнатура
пользовательской JS-функции регламентного отчёта/формы ввода при настройке
гиперссылки
Сигнатура
пользовательской JS-функции для веб-приложения и конструктора бизнес-приложений
Особенности
использования аргументов JS-функции в веб-приложении с конфигурационным
файлом PP.xml
В сигнатуре JS-функции гиперссылки/пользовательской кнопки используется параметр args:
Поле moduleId возвращает уникальный идентификатор открытого экземпляра объекта, из которого вызывается JS-функция. Данный идентификатор используется с методами объекта Platform.Managers.
Platform.Managers - объект, предоставляющий доступ к открытым объектам репозитория, из которых вызываются JS-функции. В текущей реализации у данного объекта реализованы объекты:
Metabase. Содержит методы для получения информации об открытом репозитории:
connectionId(). Моникёр открытого репозитория;
userName(). Наименование репозитория
Prx. Предоставляет доступ к регламентному отчёту. Объект содержит поля:
selectors. Содержит селекторы для получения информации об открытом объекте:
id(). Идентификатор объекта;
name(). Наименование объекта;
key(). Ключ объекта;
openId(). Моникёр открытого экземпляра объекта;
actions. Содержит методы:
refresh(). Обновление открытого объекта;
refreshTabSheet(). Обновление таблицы;
loadSourcesMetadata(). Обновление информации об источниках данных;
setIsDirty(). Получение признака наличия несохранённых изменений отчёта;
DataEntryForm. Предоставляет доступ к форме ввода. Объект содержит поля:
selectors. Содержит селекторы для получения информации об открытом объекте:
id(). Идентификатор объекта;
name(). Наименование объекта;
key(). Ключ объекта;
openId(). Моникёр открытого экземпляра объекта.
actions. Содержит методы:
refresh(). Обновление открытого объекта.
Также при работе с регламентным отчётом/формой ввода в JS-функциях доступны следующие объекты пространства имён Platform:
Platform.Bi - объект, содержащий методы для взаимодействия с BI-сервером посредством Json-запросов. Список методов и их сигнатура:
execMethod(apiComponent, module, methodName, args, objectToSave, batched) - для выполнения запросов с помощью операции ForeExec. Где:
apiComponent: string. Идентификатор контейнера. Если контейнер не используется, то укажите значение null;
module: number | string. Ключ или идентификатор модуля/сборки, содержащего реализацию выполняемого метода. Например:
если модуль/сборка располагается в контейнере:
'!module'
если модуль/сборка располагается вне контейнера:
'Platform.Managers.MetaBase.connectionId()+'!module'
methodName: string. Наименование выполняемого метода;
args []. Аргументы метода. Необязательный параметр;
objectToSave: string[]. Массив моникёров объектов, которые необходимо сохранить на сервере состояний. Необязательный параметр;
batched: boolean. Параметр, определяющий необходимость выполнения указанных запросов в виде одного пакета. Необязательный параметр;
sendRequest({параметры}, Json-запрос 1, Json-запрос 2,…) - для выполнения пакета Json-запросов. Каждый отдельный запрос осуществляет выполнение одной из доступных операций BI-сервера. В качестве параметров в текущей реализации может быть указан параметр batched: boolean, указывающий необходимость выполнения указанных запросов в виде одного пакета;
putBin('моникёр', FormData) - для загрузки изображения в документ с помощью операции PutBin;
getBin('моникёр', признак загрузки, 'имя файла') - для получения изображения из документа с помощью операции GetBin;
Platform.Notification - объект, содержащий методы для вывода уведомлений, стилизованных под оформление платформы. Список методов и их сигнатура:
error('Заголовок', 'Текст'). Вывод сообщения об ошибке;
warning('Заголовок', 'Текст'). Вывод предупреждающего сообщения;
success('Заголовок', 'Текст'). Вывод сообщения об успешном событии;
info('Заголовок', 'Текст'). Вывод информационного сообщения.
См. также: