Для расширения возможностей построения аналитической панели доступно подключение плагина.
Для подключения плагина к аналитической панели:
в веб-приложении и конструкторе бизнес-приложений:
Добавьте файлы плагина <наименование плагина>.js и <наименование плагина>.css в папку установки веб-приложения или конструктора бизнес-приложений.
Путь до папки установки веб-приложения:
если описание плагина добавляется в конфигурационном файле config.json:
в ОС Linux: /opt/foresight/fp10.x-webserver/r;
в ОС Windows: C:\Program Files (x86)\Foresight\Analytics Platform 10.x Web Application\r;
если описание плагина добавляется в конфигурационном файле PP.xml:
в ОС Linux: /opt/foresight/fp10.x-webserver;
в ОС Windows: C:\Program Files (x86)\Foresight\Analytics Platform 10.x Web Application.
Путь до папки установки конструктора бизнес-приложений:
если серверная часть конструктора бизнес-приложений установлена автоматически на Apache2 или вручную на ASP.NET:
в ОС Linux: /opt/foresight/fp10.x-dba;
в ОС Windows: C:\Program Files (x86)\Foresight\DBA_10.x. Папка DBA_10.x создаётся вручную и может отличаться;
если серверная часть конструктора бизнес-приложений установлена вручную на Apache2, Java или автоматически на ASP.NET:
в ОС Linux: /opt/foresight/dba/10.x;
в ОС Windows: C:\Program Files (x86)\Foresight\Designer of Business Application 10.x Web Server.
Совет. Для удобного использования плагинов создайте отдельную папку custom_plugins, в которой будут размещаться плагины.
Добавьте описание плагина в конфигурационном файле config.json/PP.xml для веб-приложения или config.json/DBA.config.json для конструктора бизнес-приложений.
"plugins": [
{
"name": "Test", //наименование плагина
"path": "../custom_plugins/Test.js", //относительный путь до JS-файла плагина
"css": "../custom_plugins/Test.css", //относительный путь до CSS-файла со стилями плагина
"id": "PP.Ui.Dashboard.Test", //идентификатор плагина, соответствующий типу экземпляра объекта
"params": [ //параметры открытия плагина
{
"name": "APIKey",
"value": "AIzaSyCT36DH2CuXQ8GHtNSZASvoxQtbidhuWCU"
}
]
},
{
...
}
]
<plugins>
<plugin type="PP.Ui.Dashboard.MyLabel" path="../custom_plugins/MyLabel.js" css="../custom_plugins/MyLabel.css" loaded="false" name="MyLabel"/>
<plugin ... />
</plugins>
"plugins": [
{
"Type": "PP.Ui.Dashboard.MyLabel", //идентификатор плагина, соответствующий типу экземпляра объекта
"Path": "../custom_plugins/MyLabel.js", //относительный путь до JS-файла плагина
"Css": "../custom_plugins/MyLabel.css", //относительный путь до CSS-файла со стилями плагина
"Name": "MyLabel", //наименование плагина
"Loaded": false //способ загрузки плагина
},
{
...
}
]
Важно. Для преднастроенных плагинов зарезервированы идентификаторы: PP.Ui.Dashboard.Sankey - «Sankey-диаграмма»; PP.Ui.Dashboard.Gantt - «Диаграмма Ганта»; PP.Ui.Dashboard.Indicator - «Индикатор». Убедитесь, что в конфигурационных файлах PP.xml и DBA.config.json атрибут type содержит идентификатор, отличный от зарезервированных.
В конфигурационном файле config.json веб-приложения/конструктора бизнес-приложений настройки плагинов объединяются, если атрибут id плагина совпадает с идентификатором преднастроенных плагинов.
Перезапустите веб-сервер.
Также в веб-приложении помимо указанного способа можно подключить плагин через репозиторий.
Подключение плагина через репозиторий, используя файл PP.xml
После выполнения действий при открытии аналитической панели в веб-приложении будет выполняться автономная регистрация плагина. Плагин будет доступен для вставки в аналитическую панель.
При разработке веб-приложения с помощью DHTML-компонентов для подключения плагина через репозиторий используйте конструктор KapBox или метод Kap.regPluginBlock, используемый в качестве отдельного способа подключения плагина;
в настольном приложении зарегистрируйте плагин в сервисах. После выполнения действия плагин будет зарегистрирован в общих ресурсах и доступен для вставки в аналитическую панель.
Для вставки подключенного плагина выполните одно из действий в аналитической панели:
выполните команду, соответствующую названию плагина, в раскрывающемся меню кнопки «Плагины» на вкладке ленты «Главная» или «Вставка»;
выполните команду, соответствующую названию плагина, в раскрывающемся меню пункта «Новый блок > Плагины» в контекстном меню аналитической панели.
После выполнения действий плагин будет вставлен в аналитическую панель отдельным объектом.
Регистрация плагина осуществляется в среде разработки на языке программирования Fore с помощью свойства ISharedPluginsContainer.Plugins.
Для регистрации плагина в сервисах добавьте ссылки на системные сборки Metabase, Fore и выполните модуль:
для настольного приложения:
Sub UserProc;
Var
mb: IMetabase;
plugins: ISharedPlugins;
cont: ISharedPluginsContainer;
adhoc_plugs: ISharedAdhocPlugins;
plugin: ISharedAdhocPlugin;
Begin
// Получим объект для работы с текущим репозиторием
mb := MetabaseClass.Active;
// Получим объект для работы с контейнером плагинов
cont := mb.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedPluginsContainer;
// Получим объект для работы с плагинами
plugins := cont.Plugins;
// Получим коллекцию плагинов инструмента "Аналитические панели"
adhoc_plugs := plugins.AdhocPlugins;
// Создадим новый плагин
plugin := plugins.AdhocPlugins.Add;
// Зададим идентификатор и наименование плагина
plugin.Id := "ID"; // Вместо "ID" укажите уникальный идентификатор плагина в верхнем регистре, совпадающий с идентификатором в структуре JS-скрипта плагина
plugin.Name := "name"; // Вместо "name" укажите имя плагина, которое будет отображаться в аналитической панели
// Зададим форму-визуализатор и форму-мастер
plugin.ViewForm := mb.ItemById("ViewForm_Id"); // Вместо "ViewForm_Id" укажите идентификатор формы-визуализатора
plugin.MasterForm := mb.ItemById("MasterForm_Id"); // Вместо "MasterForm_Id" укажите идентификатор формы-мастера
// Сохраним
созданный плагин
(cont As IMetabaseObject).Save;
End Sub UserProc;
для веб-приложения:
Sub UserProc;
Var
mb: IMetabase;
plugins: ISharedPlugins;
cont: ISharedPluginsContainer;
adhoc_plugs: ISharedAdhocPlugins;
plugin: ISharedAdhocPlugin;
Begin
// Получим объект для работы с текущим репозиторием
mb := MetabaseClass.Active;
// Получим объект для работы с контейнером плагинов
cont := mb.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedPluginsContainer;
// Получим объект для работы с плагинами
plugins := cont.Plugins;
// Получим коллекцию плагинов инструмента "Аналитические панели"
adhoc_plugs := plugins.AdhocPlugins;
// Создадим новый плагин
plugin := plugins.AdhocPlugins.Add;
// Зададим идентификатор и наименование плагина
plugin.Id := "ID"; // Вместо "ID" укажите уникальный идентификатор плагина в верхнем регистре, совпадающий с идентификатором в структуре JS-скрипта плагина
plugin.Name := "name"; // Вместо "name" укажите имя плагина, которое будет отображаться в аналитической панели
// Зададим относительный путь JS-скрипта
plugin.WebUrl := "url"; // Вместо "url" укажите относительный путь JS-скрипта из корневой папки веб-приложения
// Сохраним
созданный плагин
(cont As IMetabaseObject).Save;
End Sub UserProc;
После выполнения модуля плагин будет зарегистрирован в сервисах и доступен для вставки в аналитическую панель.
См. также: