Подключение плагина к аналитической панели

Для расширения возможностей построения аналитической панели доступно подключение плагина.

Для подключения плагина к аналитической панели:

Путь до папки установки веб-приложения:

Путь до папки установки конструктора бизнес-приложений:

Совет. Для удобного использования плагинов создайте отдельную папку custom_plugins, в которой будут размещаться плагины.

    1. Добавьте описание плагина в конфигурационном файле config.json/PP.xml для веб-приложения или config.json/DBA.config.json для конструктора бизнес-приложений.

В файле config.json веб-приложения/конструктора бизнес-приложений для описания плагина используйте поле plugins:
"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"
          }
        ]
    },
    {
        ...
    }
]
В файле PP.xml для описания плагина используйте раздел <plugins>:
<plugins>
    <plugin type="PP.Ui.Dashboard.MyLabel" path="../custom_plugins/MyLabel.js" css="../custom_plugins/MyLabel.css" loaded="false" name="MyLabel"/>
    <plugin ... />
</plugins>
В файле DBA.config.json для описания плагина используйте поле 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 плагина совпадает с идентификатором преднастроенных плагинов.

    1. Перезапустите веб-сервер.

Также в веб-приложении помимо указанного способа можно подключить плагин через репозиторий.

Подключение плагина через репозиторий, используя файл 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;

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

См. также:

Плагины | Создание плагина